001package org.nasdanika.html.model.html.gen; 002 003import org.eclipse.emf.common.notify.AdapterFactory; 004import org.nasdanika.common.Context; 005import org.nasdanika.common.Supplier; 006import org.nasdanika.common.SupplierFactory; 007 008public abstract class HtmlElementSupplierFactoryAdapter<M extends org.nasdanika.html.model.html.HtmlElement, T extends org.nasdanika.html.HTMLElement<?>> extends HtmlElementAdapter<M,T> implements SupplierFactory<T> { 009 010 protected HtmlElementSupplierFactoryAdapter(M htmlElement, AdapterFactory adapterFactory) { 011 super(htmlElement, adapterFactory); 012 } 013 014 @Override 015 public boolean isAdapterForType(Object type) { 016 return type == SupplierFactory.class; 017 } 018 019 /** 020 * Creates element from content. 021 * @param context 022 * @return 023 */ 024 protected abstract Supplier<T> createHTMLElementSupplier(Context context); 025 026 @Override 027 public Supplier<T> create(Context context){ 028 SupplierFactory<T> elementSupplierFactory = this::createHTMLElementSupplier; 029 return elementSupplierFactory.then(this::createConfigureFunction).create(context); 030 } 031 032}