| <?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/2006/mappings" |
| xmlns:gmftool="http://www.eclipse.org/gmf/2005/ToolDefinition"> |
| <nodes> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//OutputPin"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec" |
| body=" let base : String = 'OutputPin' 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 "> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="activityDiagram_objects.gmfgraph#AttachedPinNode_external_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping" |
| readOnly="true"> |
| <diagramLabel |
| href="activityDiagram_objects.gmfgraph#ObjectNodeAttributesLabel"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//ObjectNode/ordering"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="activityDiagram.gmftool#//@palette/@tools.4/@tools.2/@tools.2"/> |
| <diagramNode |
| href="activityDiagram_objects.gmfgraph#AttachedOutputPinNode"/> |
| </ownedChild> |
| </nodes> |
| <nodes> |
| <ownedChild> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InputPin"/> |
| <domainInitializer |
| xsi:type="gmfmap:FeatureSeqInitializer"> |
| <initializers |
| xsi:type="gmfmap:FeatureValueSpec" |
| body=" let base : String = 'InputPin' 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 "> |
| <feature |
| xsi:type="ecore:EAttribute" |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </initializers> |
| </domainInitializer> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping"> |
| <diagramLabel |
| href="activityDiagram_objects.gmfgraph#AttachedPinNode_external_name"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/> |
| </labelMappings> |
| <labelMappings |
| xsi:type="gmfmap:FeatureLabelMapping" |
| readOnly="true"> |
| <diagramLabel |
| href="activityDiagram_objects.gmfgraph#ObjectNodeAttributesLabel"/> |
| <features |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//ObjectNode/ordering"/> |
| </labelMappings> |
| <tool |
| xsi:type="gmftool:CreationTool" |
| href="activityDiagram.gmftool#//@palette/@tools.4/@tools.2/@tools.1"/> |
| <diagramNode |
| href="activityDiagram_objects.gmfgraph#AttachedInputPinNode"/> |
| </ownedChild> |
| </nodes> |
| <diagram> |
| <domainModel |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/> |
| <domainMetaElement |
| href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Action"/> |
| </diagram> |
| </gmfmap:Mapping> |