[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.modeling.m2m] How do I use both AMW and UML2 modelHandlers?

Hi everybody,

I am currently working on a transformation and I have a problem with the modelHandlers

My Transfo takes 5 models as input
A UML2 model
B UML2 profile
C KDM model which previously served as a basis for creation of A
D TRACE model referencing transformation links between A and C
E IKDM model (woven model) containing various links between C elements

and as output a UML2 model O which is an enriched version of A

What I want to do is basically
- copy A in O
- browse E for every link create a UML Dependency in O for every element of C referenced by the link, find the matching element in A using D and set it as the client/supplier of the dependency
- Apply B on O, and apply stereotypes on the created dependencies

In my launcher modelHanlder are set like this
KDM -> EMF
TRACE -> AMW
WEAVING -> AMW


If I set UML2 with UML2 modelHandler I get an exception

GRAVE: ****** BEGIN Stack Trace
GRAVE: exception: GRAVE: null
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.m2m.atl.engine.vm.ClassNativeOperation.exec(ClassNativeOperation.java:69)
at org.eclipse.m2m.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java:143)
at org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModelElement.invoke(ASMEMFModelElement.java:683)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:240)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:338)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.exec(ASMOperation.java:171)
at org.eclipse.m2m.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java:143)
at org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModelElement.invoke(ASMEMFModelElement.java:683)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:240)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.exec(ASMOperation.java:171)
at org.eclipse.m2m.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java:143)
at org.eclipse.m2m.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java:101)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:240)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:338)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.exec(ASMOperation.java:171)
at org.eclipse.m2m.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java:143)
at org.eclipse.m2m.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java:101)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:240)
at org.eclipse.m2m.atl.engine.vm.ASMOperation.exec(ASMOperation.java:171)
at org.eclipse.m2m.atl.engine.vm.ASMInterpreter.<init>(ASMInterpreter.java:299)
at org.eclipse.m2m.atl.engine.AtlLauncher.launch(AtlLauncher.java:169)
at org.eclipse.m2m.atl.engine.AtlLauncher.launch(AtlLauncher.java:111)
at org.eclipse.m2m.atl.engine.AtlLauncher.launch(AtlLauncher.java:87)
at org.eclipse.m2m.atl.adt.launching.AtlRegularVM.runAtlLauncher(AtlRegularVM.java:326)
at org.eclipse.m2m.atl.adt.launching.AtlRegularVM.runAtlLauncher(AtlRegularVM.java:426)
at org.eclipse.m2m.atl.adt.launching.AtlRegularVM.launch(AtlRegularVM.java:398)
at org.eclipse.m2m.atl.adt.launching.AtlLaunchConfigurationDelegate.launch(AtlLaunchConfigurationDelegate.java:42)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:764)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:614)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:880)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1083)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.lang.ClassCastException: org.eclipse.m2m.atl.drivers.uml24atl.ASMUMLModel cannot be cast to org.eclipse.m2m.atl.drivers.emf4atl.ASMEMFModel
at org.eclipse.gmt.weaver.amw4atl.ASMAMWModelElement.getWovenASMModel(ASMAMWModelElement.java:116)
at org.eclipse.gmt.weaver.amw4atl.ASMAMWModelElement.getReferredElement(ASMAMWModelElement.java:192)
... 35 more

And If set UML2 modelHandler to EMF, it works fine as long as I don't use applyProfile and appyStereotype
because I get a method not found exception. The problem is I need to use them :)

Does anyone have an idea? I should probably divide transformation in 2 but that would mean another copy of the UML model and using the trace model of the first transformation.


Thanks in advance