001package org.nasdanika.html.ecore;
002
003import java.security.NoSuchAlgorithmException;
004import java.util.function.BiFunction;
005import java.util.function.Predicate;
006
007import org.eclipse.emf.ecore.EClass;
008import org.eclipse.emf.ecore.EModelElement;
009import org.eclipse.emf.ecore.ENamedElement;
010import org.eclipse.emf.ecore.EPackage;
011import org.eclipse.emf.ecore.EParameter;
012import org.nasdanika.common.Context;
013import org.nasdanika.common.NasdanikaException;
014import org.nasdanika.common.ProgressMonitor;
015import org.nasdanika.html.model.app.Action;
016
017public class EParameterActionSupplier extends ETypedElementActionSupplier<EParameter> {
018
019        public EParameterActionSupplier(
020                        EParameter value, 
021                        Context context, 
022                        java.util.function.Function<EPackage,String> ePackagePathComputer,
023                        Predicate<EModelElement> elementPredicate,
024                        BiFunction<ENamedElement, String, String> labelProvider) {
025                super(value, context, ePackagePathComputer, elementPredicate, labelProvider);
026        }
027        
028        @Override
029        public Action execute(EClass contextEClass, ProgressMonitor progressMonitor) {
030                Action action = super.execute(contextEClass, progressMonitor);
031                try {
032                        action.setName(EOperationActionSupplier.eOperationSignature(eObject.getEOperation(), this::encodeEPackage) + "--" + eObject.getName());
033                } catch (NoSuchAlgorithmException e) {
034                        throw new NasdanikaException(e);
035                }
036                return action;
037        }
038
039}