001package org.nasdanika.html.model.html.gen; 002 003import java.io.InputStream; 004import java.util.Objects; 005 006import org.eclipse.emf.common.notify.impl.AdapterImpl; 007import org.eclipse.emf.ecore.EObject; 008import org.nasdanika.common.Context; 009import org.nasdanika.common.Function; 010import org.nasdanika.common.FunctionFactory; 011import org.nasdanika.common.ProgressMonitor; 012import org.nasdanika.common.Supplier; 013import org.nasdanika.common.SupplierFactory; 014import org.nasdanika.common.Util; 015import org.nasdanika.emf.EObjectAdaptable; 016import org.nasdanika.exec.content.Filter; 017import org.nasdanika.html.HTMLFactory; 018import org.nasdanika.html.TagName; 019import org.nasdanika.html.model.html.Script; 020 021public class ScriptSupplierFactoryAdapter extends AdapterImpl implements SupplierFactory<org.nasdanika.html.Tag> { 022 023 protected ScriptSupplierFactoryAdapter(Script script) { 024 setTarget(script); 025 } 026 027 private FunctionFactory<InputStream,org.nasdanika.html.Tag> filterFactory = ctx -> new Function<InputStream, org.nasdanika.html.Tag>() { 028 029 @Override 030 public double size() { 031 return 1; 032 } 033 034 @Override 035 public String name() { 036 return "Script"; 037 } 038 039 @Override 040 public org.nasdanika.html.Tag execute(InputStream input, ProgressMonitor progressMonitor) throws Exception { 041 HTMLFactory htmlFactory = ctx.get(HTMLFactory.class, HTMLFactory.INSTANCE); 042 return htmlFactory.tag(TagName.script, Util.toString(ctx, input)); 043 } 044 045 }; 046 047 @Override 048 public Supplier<org.nasdanika.html.Tag> create(Context context) throws Exception { 049 EObject source = ((Filter) getTarget()).getSource(); 050 SupplierFactory<InputStream> ssf = Objects.requireNonNull(EObjectAdaptable.adaptToSupplierFactory(source, InputStream.class), "Cannot adapt to SupplierFactory: " + source); 051 return ssf.then(filterFactory).create(context); 052 } 053 054} 055