| <?xml version="1.0" encoding="UTF-8"?> |
| <gmfmap:Mapping xmi:version="2.0" |
| xmlns:xmi="http://www.omg.org/XMI" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" |
| xmlns:gmfmap="http://www.eclipse.org/gmf/2008/mappings" |
| xmlns:gmftool="http://www.eclipse.org/gmf/2005/ToolDefinition"> |
| <nodes> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class/nestedClassifier"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#StateMachineNode_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.0"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#StateMachineNode"/> |
| <children> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine/region"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region"/> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.2"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#RegionNode"/> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/> |
| <domainSpecialization |
| body="self.oclIsTypeOf(uml::State) and self.isSimple and (not self.isSubmachineState)"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'State' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#SimpleStateNode_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.1/@tools.0"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#SimpleStateNode"/> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/entry"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Behavior"/> |
| <domainSpecialization |
| body="isEntryActivity" |
| language="java"/> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping" |
| readOnly="true" |
| viewPattern="entry / {0}"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#InternalActivity_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#InternalActivity_name"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/exit"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Behavior"/> |
| <domainSpecialization |
| body="isExitActivity" |
| language="java"/> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping" |
| readOnly="true" |
| viewPattern="exit / {0}"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#InternalActivity_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#InternalActivity_name"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/doActivity"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Behavior"/> |
| <domainSpecialization |
| body="isDoActivity" |
| language="java"/> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping" |
| readOnly="true" |
| viewPattern="do / {0}"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#InternalActivity_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#InternalActivity_name"/> |
| </ownedChild> |
| </children> |
| <compartments |
| children="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.0 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.1 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.2"> |
| <compartment |
| href="stateMachineDiagram.gmfgraph#SimpleState_InternalActivities"/> |
| </compartments> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/> |
| <domainSpecialization |
| body="self.oclIsTypeOf(uml::State) and self.isComposite and (not self.isSubmachineState)"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'State' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| <initializers |
| xsi:type="gmfmap:ReferenceNewElementSpec"> |
| <feature |
| xsi:type="ecore:EReference" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/region"/> |
| <newElementInitializers> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'Region' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| <elementClass |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region"/> |
| </newElementInitializers> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#CompositeStateNode_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.1/@tools.1"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#CompositeStateNode"/> |
| <children |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/region"/> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild/@compartments.0" |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/entry"/> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild/@compartments.0" |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/exit"/> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild/@compartments.0" |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/doActivity"/> |
| </children> |
| <compartments |
| children="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild/@children.3 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild/@children.2 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild/@children.1"> |
| <compartment |
| href="stateMachineDiagram.gmfgraph#CompositeState_InternalActivities"/> |
| </compartments> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild |
| relatedDiagrams="//@diagram"> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State"/> |
| <domainSpecialization |
| body="self.oclIsTypeOf(uml::State) and self.isSubmachineState"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'SubmachineState' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping" |
| viewPattern=""> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#SubmachineStateNode_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:GenericTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.1/@tools.2"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#SubmachineStateNode"/> |
| <children |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/region"/> |
| </children> |
| <children> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/connection"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//ConnectionPointReference"/> |
| <domainSpecialization |
| body="entry->notEmpty() implies entry->forAll(e | e.kind = PseudostateKind::entryPoint)"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'EntryPointConnectionPointReference' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#EntryExitPointConnectionPointReferenceNode_ExternalLabel"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.12"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#EntryPointConnectionPointReferenceNode"/> |
| </ownedChild> |
| </children> |
| <children> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/connection"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//ConnectionPointReference"/> |
| <domainSpecialization |
| body="exit->notEmpty() implies exit->forAll(e | e.kind = PseudostateKind::exitPoint)"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'ExitPointConnectionPointReference' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#EntryExitPointConnectionPointReferenceNode_ExternalLabel"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.13"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#ExitPointConnectionPointReferenceNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild/@compartments.0" |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/entry"/> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild/@compartments.0" |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.1/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/exit"/> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild/@compartments.0" |
| referencedChild="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//State/doActivity"/> |
| </children> |
| <compartments |
| children="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild/@children.3 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild/@children.4 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.2/@ownedChild/@children.5"> |
| <compartment |
| href="stateMachineDiagram.gmfgraph#CompositeState_InternalActivities"/> |
| </compartments> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//FinalState"/> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.3"/> |
| <diagramNode |
| href="activityDiagram_controlNodes.gmfgraph#FinalStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::initial"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::initial"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.4"/> |
| <diagramNode |
| href="activityDiagram_controlNodes.gmfgraph#InitialPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::shallowHistory"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::shallowHistory"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.5"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#ShallowHistoryPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::deepHistory"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::deepHistory"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.6"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#DeepHistoryPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::fork"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::fork"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.7"/> |
| <diagramNode |
| href="activityDiagram_controlNodes.gmfgraph#ForkAndJoinPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::join"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::join"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.8"/> |
| <diagramNode |
| href="activityDiagram_controlNodes.gmfgraph#ForkAndJoinPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::junction"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::junction"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.9"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#JunctionPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::choice"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::choice"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.10"/> |
| <diagramNode |
| href="activityDiagram_controlNodes.gmfgraph#ChoicePseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children |
| compartment="//@nodes.0/@ownedChild/@children.0/@ownedChild/@compartments.0"> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/subvertex"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::terminate"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::terminate"/> |
| </initializers> |
| </domainInitializer> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.11"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#TerminatePseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <compartments |
| children="//@nodes.0/@ownedChild/@children.0/@ownedChild/@children.0 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.1 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.2 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.3 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.4 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.5 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.6 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.7 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.8 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.9 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.10 //@nodes.0/@ownedChild/@children.0/@ownedChild/@children.11"> |
| <compartment |
| href="stateMachineDiagram.gmfgraph#subvertices"/> |
| </compartments> |
| </ownedChild> |
| </children> |
| <children> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine/connectionPoint"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::entryPoint"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::entryPoint"/> |
| </initializers> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'Entry Point' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#EntryExitPoint_ExternalLabel"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.12"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#EntryPointPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| <children> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine/connectionPoint"/> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate"/> |
| <domainSpecialization |
| body="self.kind = PseudostateKind::exitPoint"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Pseudostate/kind"/> |
| <value |
| body="PseudostateKind::exitPoint"/> |
| </initializers> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec"> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| <value |
| body=" let base : String = 'Exit Point' in let suffixes : Sequence(String) = Sequence {'', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'} in let space : Namespace = self.namespace in let allMissed : Sequence(String) = suffixes-> 	select(s : String | not space.member->exists(e : NamedElement | e.name = base.concat(s)) ) in let firstMissed : String = allMissed->first() in let noMisses : Boolean = firstMissed.oclIsUndefined() in let allNames : Set(String) = 	if noMisses 		then 		space.member->collect(e : NamedElement | 			if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) <> base 			then '' else e.name 			endif 		)->asSet()->excluding('') 		else Set{'not in use'} 		endif in let longestName : String = 		if noMisses 		then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()		else 'not in use' 		endif 	in if noMisses then 		if longestName.oclIsUndefined() 		then base 		else longestName.concat('1') 		endif else base.concat(firstMissed) endif "/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#EntryExitPoint_ExternalLabel"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.0/@tools.13"/> |
| <diagramNode |
| href="stateMachineDiagram.gmfgraph#ExitPointPseudoStateNode"/> |
| </ownedChild> |
| </children> |
| </ownedChild> |
| </nodes> |
| <links> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition"/> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping" |
| readOnly="true"> |
| <diagramLabel |
| href="stateMachineDiagram.gmfgraph#TransitionLink_transition"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <containmentFeature |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Region/transition"/> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="stateMachineDiagram.gmftool#//@palette/@tools.1/@tools.0"/> |
| <diagramLink |
| href="stateMachineDiagram.gmfgraph#TransitionLink"/> |
| <sourceMetaFeature |
| xsi:type="ecore:EReference" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition/source"/> |
| <linkMetaFeature |
| xsi:type="ecore:EReference" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Transition/target"/> |
| </links> |
| <diagram> |
| <diagramCanvas |
| href="stateMachineDiagram.gmfgraph#statemachine"/> |
| <domainModel |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateMachine"/> |
| <palette |
| href="stateMachineDiagram.gmftool#//@palette"/> |
| </diagram> |
| </gmfmap:Mapping> |