package de.uni_mannheim.informatik.swt.common; import java.lang.reflect.InvocationTargetException; import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.ocl.ParserException; public class EMFReflectionHelper { public static Object executeOperation(EObject context, String name) throws InvocationTargetException, ParserException{ EOperation opration = (EOperation)OCLHelper.execute(context.eClass(), "self.eAllOperations->select(o | o.name = '" + name + "')->first()"); return context.eInvoke(opration, new BasicEList()); } public static Object getFeature(EObject context, String name) throws ParserException{ EStructuralFeature feature = (EStructuralFeature)OCLHelper.execute(context.eClass(), "self.eAllStructuralFeatures->select(o | o.name = '" + name + "')->first()"); return context.eGet(feature); } }