package Metamodel; package Cristal { class Condition { !ordered ref PartCompositeMember[*] partCompositeMembers; !ordered ref ActCompositeMember[*] actCompositeMembers; } class CompositeParDef extends PartDefinition { !ordered val PartCompositeMember[*] partCompositeMember; } class ElementaryPartDef extends PartDefinition { } class ElementaryActDef extends ActivityDefinition { } class CompositeActDef extends ActivityDefinition { !ordered val ActCompositeMember[*] actCompositeMembers; } class ActCompositeMember { !ordered ref ActivityDefinition[*]#actCompositeMember activityDefinitions; } class ActivityDefinition { !ordered ref ActCompositeMember[1]#activityDefinitions actCompositeMember; } class PartDefinition { !ordered ref PartCompositeMember[*]#partDefinitions partCompositeMembers; } class PartCompositeMember { !ordered ref PartDefinition[1]#partCompositeMembers partDefinitions; } } package PrimitiveTypes { datatype String : ""; datatype Boolean : ""; datatype Integer : ""; }