001package org.nasdanika.html.model.bootstrap.gen;
002
003import java.util.List;
004
005import org.eclipse.emf.common.util.EList;
006import org.nasdanika.common.CollectionCompoundConsumerFactory;
007import org.nasdanika.common.ConsumerFactory;
008import org.nasdanika.common.Context;
009import org.nasdanika.common.Function;
010import org.nasdanika.emf.EObjectAdaptable;
011import org.nasdanika.html.HTMLElement;
012import org.nasdanika.html.model.bootstrap.TableRow;
013
014public class TableRowContainerConsumerFactoryAdapter<M extends org.nasdanika.html.model.bootstrap.TableRowContainer, T extends org.nasdanika.html.bootstrap.RowContainer<?,?>> extends BootstrapElementConsumerFactoryAdapter<M,T> {
015
016        public TableRowContainerConsumerFactoryAdapter(M tableRowContainer) {
017                super(tableRowContainer);
018        }
019        
020        @Override
021        protected Function<HTMLElement<?>, HTMLElement<?>> createConfigureFunction(Context context) throws Exception {
022                EList<TableRow> rows = getTarget().getRows();
023                if (rows.isEmpty()) {
024                        return super.createConfigureFunction(context);
025                }
026        
027                @SuppressWarnings("rawtypes")
028                List<ConsumerFactory<HTMLElement>> rowConsumers = EObjectAdaptable.adaptToConsumerFactoryNonNull(rows, org.nasdanika.html.HTMLElement.class);
029                CollectionCompoundConsumerFactory<HTMLElement<?>> rowsConsumerFactory = new CollectionCompoundConsumerFactory<>("Creating rows", rowConsumers);                 
030                return super.createConfigureFunction(context).then(rowsConsumerFactory.asFunctionFactory().create(context));
031        }
032
033}