package org.eclipse.gmf.tooling.runtime.impl.ocl.tracker.activeocl; import org.eclipse.emf.ecore.EObject; import org.eclipse.ocl.ParserException; import org.eclipse.ocl.ecore.OCL.Helper; import org.eclipse.ocl.ecore.OCLExpression; class DependencyEvaluator { private final EObject myContext; private final org.eclipse.ocl.ecore.OCL myOcl; private final OCLExpression myExpression; public DependencyEvaluator(EObject context, String oclExp, org.eclipse.gmf.tooling.runtime.impl.ocl.activeocl.ActiveOclDependencyCollector dependencyCollector) throws ParserException { myContext = context; myOcl = org.eclipse.ocl.ecore.OCL.newInstance(new org.eclipse.gmf.tooling.runtime.impl.ocl.tracker.activeocl.EcoreEnvironmentFactoryEx(dependencyCollector)); Helper helper = myOcl.createOCLHelper(); helper.setContext(context.eClass()); myExpression = helper.createQuery(oclExp); } public Object evaluate() { return myOcl.evaluate(myContext, myExpression); } }