I have the following in my metafacades.xml:
- Code: Select all
<metafacade class="nl.eid.andromda.cartridges.metafacades.ProcessFacadeLogicImpl">
<mapping>
<stereotype>PROCESS</stereotype>
</mapping>
</metafacade>
<metafacade class="nl.eid.andromda.cartridges.metafacades.CustomStateFacadeLogicImpl">
<mapping>
<property name="containedInProcess" />
</mapping>
</metafacade>
<metafacade class="nl.eid.andromda.cartridges.metafacades.CustomTransitionFacadeLogicImpl">
<mapping>
<property name="containedInProcess" />
</mapping>
</metafacade>
<metafacade class="nl.eid.andromda.cartridges.metafacades.CustomTriggerFacadeLogicImpl">
<mapping>
<property name="containedInProcess" />
</mapping>
</metafacade>
<metafacade class="nl.eid.andromda.cartridges.metafacades.CustomStateMachineFacadeLogicImpl" />
The metafacade model contains the CustomStateMachineFacade class, stereotyped as metafacade, and the class extends (generalization) StateMachineFacade (from the andromda meta profile). The CustomStateMachineFacade has associations to CustomTriggerFacade (which extends EventFacade) and CustomTransitionFacade (which extends TransitionFacade). And finally, the metamodel contains CustomStateVertexFacade (extending StateVertexFacade) and CustomStateFacade (extending StateFacade).
The containedInProcess property returns true if the class associated with the state machine is a ProcessFacade (this is the case when a class in the model has a Process stereotype).
The exception log shows as main exception:
- Code: Select all
Failed to construct a meta facade of type 'null' with mappingObject of type --> 'class org.eclipse.uml2.impl.PackageImpl'
The Root exception is different:
- Code: Select all
org.andromda.core.metafacade.MetafacadeMappingsException: No mapping class could be found for 'nl.eid.andromda.cartridges.metafacades.CustomStateMachineFacadeLogicImpl'
Btw, can the metamodel also be a UML2 model, or does it have to be a UML1.4 model? My current metamodel is UML1.4.