blob: f81f34c3ed850d86c1951bec805c168b29d1822d [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#//Package/packagedElement"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction"/>
<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 = 'Interaction' 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="sequenceDiagram.gmfgraph#InteractionNode_name"/>
<features
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
</labelMappings>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.0"/>
<diagramNode
href="sequenceDiagram.gmfgraph#InteractionNode"/>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/formalGate"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/formalGate"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Gate"/>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.9"/>
<diagramNode
href="sequenceDiagram.gmfgraph#GateNode"/>
</ownedChild>
</children>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InteractionUse"/>
<labelMappings
xsi:type="gmfmap:FeatureLabelMapping">
<diagramLabel
href="sequenceDiagram.gmfgraph#InteractionUseNode_signature"/>
<features
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
</labelMappings>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.7"/>
<diagramNode
href="sequenceDiagram.gmfgraph#InteractionUseNode"/>
</ownedChild>
</children>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment"/>
<labelMappings
xsi:type="gmfmap:FeatureLabelMapping">
<diagramLabel
href="sequenceDiagram.gmfgraph#CombinedFragment_operator"/>
<features
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment/interactionOperator"/>
</labelMappings>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.8"/>
<diagramNode
href="sequenceDiagram.gmfgraph#CombinedFragmentNode"/>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment/operand"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment/operand"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InteractionOperand"/>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.10"/>
<diagramNode
href="sequenceDiagram.gmfgraph#InteractionOperandNode"/>
</ownedChild>
</children>
</ownedChild>
</children>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/lifeline"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Lifeline"/>
<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 = 'LifeLine' 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="sequenceDiagram.gmfgraph#LayeredLifeLineNode_name"/>
<features
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
</labelMappings>
<labelMappings>
<diagramLabel
href="sequenceDiagram.gmfgraph#LayeredLifeLineNode_decomposedAs"/>
</labelMappings>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.1"/>
<diagramNode
href="sequenceDiagram.gmfgraph#LayeredLifeLineNode"/>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Lifeline/coveredBy"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//ActionExecutionSpecification"/>
<labelMappings
xsi:type="gmfmap:FeatureLabelMapping">
<diagramLabel
href="sequenceDiagram.gmfgraph#ActionExecutionNode_action"/>
<features
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
</labelMappings>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.4"/>
<diagramNode
href="sequenceDiagram.gmfgraph#ActionExecutionNode"/>
</ownedChild>
</children>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Lifeline/coveredBy"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StateInvariant"/>
<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 = 'StateInvariant' 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="sequenceDiagram.gmfgraph#StateInvariantNode_constraint"/>
<features
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
</labelMappings>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.3"/>
<diagramNode
href="sequenceDiagram.gmfgraph#StateInvariantNode"/>
</ownedChild>
</children>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Lifeline/coveredBy"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehaviorExecutionSpecification"/>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.5"/>
<diagramNode
href="sequenceDiagram.gmfgraph#BehaviorExecutionNode"/>
</ownedChild>
</children>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Lifeline/coveredBy"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InteractionUse"/>
<diagramNode
href="sequenceDiagram.gmfgraph#MountingRegionNode"/>
</ownedChild>
</children>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/fragment"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Lifeline/coveredBy"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment"/>
<diagramNode
href="sequenceDiagram.gmfgraph#MountingRegionNode"/>
<children>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment/operand"/>
<childrenFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//CombinedFragment/operand"/>
<ownedChild>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InteractionOperand"/>
<diagramNode
href="sequenceDiagram.gmfgraph#MountingRegionNode"/>
</ownedChild>
</children>
</ownedChild>
</children>
</ownedChild>
</children>
</ownedChild>
</nodes>
<links>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Message"/>
<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 = 'Message' 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>
<containmentFeature
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interaction/message"/>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.2"/>
<diagramLink
href="sequenceDiagram.gmfgraph#MessageLink"/>
<sourceMetaFeature
xsi:type="ecore:EReference"
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Constraint/constrainedElement"/>
<linkMetaFeature
xsi:type="ecore:EReference"
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Constraint/constrainedElement"/>
<creationConstraints>
<sourceEnd
body="self.oclIsKindOf(uml::Gate) or self.oclIsKindOf(uml::BehaviorExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)"/>
<targetEnd
body="self.oclIsKindOf(uml::Gate) or self.oclIsKindOf(uml::BehaviorExecutionSpecification) or self.oclIsKindOf(uml::Lifeline)"/>
</creationConstraints>
</links>
<links>
<tool
xsi:type="gmftool:CreationTool"
href="sequenceDiagram.gmftool#//@palette/@tools.0/@tools.11"/>
<diagramLink
href="sequenceDiagram.gmfgraph#MountingLink"/>
</links>
<diagram>
<diagramCanvas
href="sequenceDiagram.gmfgraph#SequenceDiagramSurface"/>
<domainModel
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/>
<domainMetaElement
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
<palette
href="sequenceDiagram.gmftool#//@palette"/>
</diagram>
</gmfmap:Mapping>