Hi,
I'm just trying to get OCL working with UML and having a few problems.
Below is the source and the exception trace that I keep getting. I'd
really appreciate it if someone could give me a quick hand. The
tutorials only illustrate Ecore metamodels and I can't find any simple
tutorials that shows you how to use queries over UML/Ecore. My uml
model is a simple one - at its root it has a Model and its
packagedElements are two packages. I thought passing in the .eClass()
from the Model element would work but it doesn't seem to. I tried this
query on the OCL console with my model and it works!
Thanks in advance,
Andrew
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION,
UMLResource.Factory.INSTANCE);
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("xmi",
new XMIResourceFactoryImpl());
resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI,UMLPackage.eINSTANCE);
Model p = (Model) load(URI.createURI("My.uml"));
boolean valid;
EList e = p.getPackagedElements();
try {
Query query = QueryFactory.eINSTANCE.createQuery(
"self.nestedPackage->collect( e | e.packagedElement->collect(f |
f.name))",
p.eClass());
valid = true;
} catch (IllegalArgumentException s) {
valid = false;
System.err.println(s.getLocalizedMessage());
}
Exception in thread "main" java.lang.NoClassDefFoundError:
lpg/lpgjavaruntime/RuleAction
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at
org.eclipse.emf.ocl.expressions.util.ExpressionsUtil.createParser(ExpressionsUtil.java:680)
at
org.eclipse.emf.ocl.expressions.util.ExpressionsUtil.createParser(ExpressionsUtil.java:663)
at
org.eclipse.emf.ocl.expressions.util.ExpressionsUtil.createQuery(ExpressionsUtil.java:177)
at
org.eclipse.emf.ocl.expressions.util.ExpressionsUtil.createQuery(ExpressionsUtil.java:156)
at
org.eclipse.emf.ocl.query.impl.QueryUtil.makeOCLQuery(QueryUtil.java:66)
at
org.eclipse.emf.ocl.query.impl.QueryFactoryImpl.createQuery(QueryFactoryImpl.java:127)
at PackageMerge.main(PackageMerge.java:98)