blob: 474d118dca15013b3a41090f551bb773e088d55d [file] [log] [blame]
<?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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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-> &#x9;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) = &#x9;if noMisses &#x9;&#x9;then &#x9;&#x9;space.member->collect(e : NamedElement | &#x9;&#x9;&#x9;if e = self or e.name.oclIsUndefined() or e.name.substring(1, e.name.size().min(base.size())) &lt;> base &#x9;&#x9;&#x9;then '' else e.name &#x9;&#x9;&#x9;endif &#x9;&#x9;)->asSet()->excluding('') &#x9;&#x9;else Set{'not in use'} &#x9;&#x9;endif in let longestName : String = &#x9;&#x9;if noMisses &#x9;&#x9;then allNames->select(n : String | not allNames->exists(nn : String | nn.size() > n.size()))->asSequence()->first()&#x9;&#x9;else 'not in use' &#x9;&#x9;endif &#x9;in if noMisses then &#x9;&#x9;if longestName.oclIsUndefined() &#x9;&#x9;then base &#x9;&#x9;else longestName.concat('1') &#x9;&#x9;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>