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}