1979 lines
120 KiB
XML
Executable File
1979 lines
120 KiB
XML
Executable File
<?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>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/nestedPackage"/>
|
|
<ownedChild
|
|
relatedDiagrams="//@diagram">
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'package' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_packages.gmfgraph#PackageNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_packages.gmfgraph#PackageNode"/>
|
|
<children
|
|
compartment="//@nodes.0/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/nestedPackage"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'package' 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="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.0/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'Class' 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="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.0/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'DataType' 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="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.3"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.0/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//PrimitiveType"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'PrimitiveType' 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="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.4"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.0/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Enumeration"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'Enumeration' 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="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.2"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.0/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//AssociationClass"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'AssociationClass' 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="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.6"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.0/@ownedChild/@compartments.2">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'instanceSpecification' 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="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.3/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.0/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_packages.gmfgraph#packages"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.0/@ownedChild/@children.1 //@nodes.0/@ownedChild/@children.2 //@nodes.0/@ownedChild/@children.3 //@nodes.0/@ownedChild/@children.4 //@nodes.0/@ownedChild/@children.5">
|
|
<compartment
|
|
href="classDiagram_packages.gmfgraph#classifiers"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.0/@ownedChild/@children.6">
|
|
<compartment
|
|
href="classDiagram_packages.gmfgraph#other"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
|
|
<domainSpecialization
|
|
body="not oclIsKindOf(uml::AssociationClass) and not oclIsKindOf(uml::StateMachine)"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="let base : String = 'Class' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode_stereo"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/qualifiedName"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode"/>
|
|
<children
|
|
compartment="//@nodes.1/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StructuredClassifier/ownedAttribute"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
<domainSpecialization
|
|
body="not oclIsKindOf(uml::Port)"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="AggregationKind::composite">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
|
|
</initializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'property' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.1/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class/ownedOperation"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'operation' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.1/@ownedChild/@compartments.2"
|
|
referencedChild="//@nodes.0/@ownedChild/@children.1/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class/nestedClassifier"/>
|
|
</children>
|
|
<children>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StructuredClassifier/ownedAttribute"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="AggregationKind::composite">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
|
|
</initializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'port' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_ports.gmfgraph#PortNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.3"/>
|
|
<diagramNode
|
|
href="classDiagram_ports.gmfgraph#PortNode"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TemplateableElement/ownedTemplateSignature"/>
|
|
<referencedChild
|
|
href="classDiagram_SharedTemplates.gmfmap#//@nodes.0/@ownedChild"/>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.1/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#attributes"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.1/@ownedChild/@children.1">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#operations"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.1/@ownedChild/@children.2">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#classes"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//AssociationClass"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'AssociationClass' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.6"/>
|
|
<diagramNode
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode"/>
|
|
<children
|
|
compartment="//@nodes.2/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//StructuredClassifier/ownedAttribute"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="AggregationKind::composite">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
|
|
</initializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'property' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.2/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class/ownedOperation"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'operation' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.2/@ownedChild/@compartments.2"
|
|
referencedChild="//@nodes.0/@ownedChild/@children.1/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class/nestedClassifier"/>
|
|
</children>
|
|
<children>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TemplateableElement/ownedTemplateSignature"/>
|
|
<referencedChild
|
|
href="classDiagram_SharedTemplates.gmfmap#//@nodes.0/@ownedChild"/>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.2/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#attributes"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.2/@ownedChild/@children.1">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#operations"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.2/@ownedChild/@children.2">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#classes"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType"/>
|
|
<domainSpecialization
|
|
body="not oclIsKindOf(uml::PrimitiveType) and not oclIsKindOf(uml::Enumeration)"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'DataType' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.3"/>
|
|
<diagramNode
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode"/>
|
|
<children
|
|
compartment="//@nodes.3/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType/ownedAttribute"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="AggregationKind::composite">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
|
|
</initializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'property' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.3/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType/ownedOperation"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'operation' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TemplateableElement/ownedTemplateSignature"/>
|
|
<referencedChild
|
|
href="classDiagram_SharedTemplates.gmfmap#//@nodes.0/@ownedChild"/>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.3/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#attributes"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.3/@ownedChild/@children.1">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#operations"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//PrimitiveType"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'PrimitiveType' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.4"/>
|
|
<diagramNode
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode"/>
|
|
<children
|
|
compartment="//@nodes.4/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType/ownedAttribute"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="AggregationKind::composite">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
|
|
</initializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'property' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.4/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType/ownedOperation"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'operation' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TemplateableElement/ownedTemplateSignature"/>
|
|
<referencedChild
|
|
href="classDiagram_SharedTemplates.gmfmap#//@nodes.0/@ownedChild"/>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.4/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#attributes"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.4/@ownedChild/@children.1">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#operations"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Enumeration"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'Enumeration' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.2"/>
|
|
<diagramNode
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode"/>
|
|
<children
|
|
compartment="//@nodes.5/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Enumeration/ownedLiteral"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//EnumerationLiteral"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'enumerationLiteral' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.2"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.5/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType/ownedAttribute"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="AggregationKind::composite">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
|
|
</initializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'property' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.5/@ownedChild/@compartments.2">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//DataType/ownedOperation"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'operation' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TemplateableElement/ownedTemplateSignature"/>
|
|
<referencedChild
|
|
href="classDiagram_SharedTemplates.gmfmap#//@nodes.0/@ownedChild"/>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.5/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#literals"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.5/@ownedChild/@children.1">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#attributes"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.5/@ownedChild/@children.2">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#operations"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'Interface' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_interfaces.gmfgraph#Interface_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.7"/>
|
|
<diagramNode
|
|
href="classDiagram_interfaces.gmfgraph#ProvidedInterfaceCircleNode"/>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Constraint"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:ReferenceNewElementSpec">
|
|
<feature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Constraint/specification"/>
|
|
<newElementInitializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="'ValueSpecification'">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//LiteralString/value"/>
|
|
</initializers>
|
|
<elementClass
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//LiteralString"/>
|
|
</newElementInitializers>
|
|
</initializers>
|
|
</domainInitializer>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_constraints.gmfgraph#Constraint_ValueSpecification"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.0/@tools.5"/>
|
|
<diagramNode
|
|
href="classDiagram_constraints.gmfgraph#ConstraintNode"/>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'instanceSpecification' 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"
|
|
viewPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_instances.gmfgraph#InstanceNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.3/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_instances.gmfgraph#InstanceNode"/>
|
|
<children
|
|
compartment="//@nodes.8/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification/slot"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Slot"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_instances.gmfgraph#Slot_inplace"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.3/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_instances.gmfgraph#Slot_inplace"/>
|
|
</ownedChild>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.8/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_instances.gmfgraph#Slots"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/>
|
|
<domainSpecialization
|
|
body="self.supplier->size() > 1 or self.client->size() > 1"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'dependency' 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="classDiagram_dependencies.gmfgraph#Dependency_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<diagramNode
|
|
href="classDiagram_dependencies.gmfgraph#NAryDependencyNode"/>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//GeneralizationSet"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping"
|
|
viewPattern="{0}, {1}"
|
|
editPattern="{0}, {1}">
|
|
<diagramLabel
|
|
href="classDiagram_generalizationSet.gmfgraph#GeneralizationSetConstraint"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//GeneralizationSet/isCovering"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//GeneralizationSet/isDisjoint"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping"
|
|
readOnly="true"
|
|
viewPattern=":{0}">
|
|
<diagramLabel
|
|
href="classDiagram_generalizationSet.gmfgraph#GeneralizationSetPowerType"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<diagramNode
|
|
href="classDiagram_generalizationSet.gmfgraph#GeneralizationSetNode"/>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'Interface' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<diagramNode
|
|
href="classDiagram_classifiers.gmfgraph#ClassNode"/>
|
|
<children
|
|
compartment="//@nodes.11/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface/ownedAttribute"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
<domainSpecialization
|
|
body="not oclIsKindOf(uml::Port)"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body="AggregationKind::composite">
|
|
<feature
|
|
xsi:type="ecore:EAttribute"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property/aggregation"/>
|
|
</initializers>
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'property' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.0"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.11/@ownedChild/@compartments.1">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface/ownedOperation"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'operation' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.1"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.11/@ownedChild/@compartments.2"
|
|
referencedChild="//@nodes.0/@ownedChild/@children.1/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface/nestedClassifier"/>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.11/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#attributes"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.11/@ownedChild/@children.1">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#operations"/>
|
|
</compartments>
|
|
<compartments
|
|
children="//@nodes.11/@ownedChild/@children.2">
|
|
<compartment
|
|
href="classDiagram_classifiers.gmfgraph#classes"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Component/packagedElement"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#SecondaryPackage_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#SecondaryPackageNode"/>
|
|
<children
|
|
compartment="//@nodes.12/@ownedChild/@compartments.0">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Namespace/elementImport"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//ElementImport"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//ElementImport/alias"/>
|
|
</labelMappings>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.1/@tools.5"/>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#AuxiliaryPureLabel"/>
|
|
</ownedChild>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.12/@ownedChild/@children.0">
|
|
<compartment
|
|
href="classDiagram_packages.gmfgraph#imports"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
<ownedChild>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//AssociationClass"/>
|
|
<diagramNode
|
|
href="classDiagram_classifiers.gmfgraph#AssociationClassRhombNode"/>
|
|
</ownedChild>
|
|
</nodes>
|
|
<nodes>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/nestedPackage"/>
|
|
<ownedChild
|
|
relatedDiagrams="//@diagram">
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
|
|
<domainInitializer
|
|
xsi:type="gmfmap:FeatureSeqInitializer">
|
|
<initializers
|
|
xsi:type="gmfmap:FeatureValueSpec"
|
|
body=" let base : String = 'package' 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"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_auxiliary.gmfgraph#PackageAsFrameNode_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<diagramNode
|
|
href="classDiagram_auxiliary.gmfgraph#PackageAsFrameNode"/>
|
|
<children
|
|
compartment="//@nodes.14/@ownedChild/@compartments.0"
|
|
referencedChild="//@nodes.14/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/nestedPackage"/>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.14/@ownedChild/@compartments.0"
|
|
referencedChild="//@nodes.1/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.14/@ownedChild/@compartments.0"
|
|
referencedChild="//@nodes.5/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.14/@ownedChild/@compartments.0"
|
|
referencedChild="//@nodes.8/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.14/@ownedChild/@compartments.0"
|
|
referencedChild="//@nodes.3/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
</children>
|
|
<children
|
|
compartment="//@nodes.14/@ownedChild/@compartments.0"
|
|
referencedChild="//@nodes.4/@ownedChild">
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<childrenFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/ownedType"/>
|
|
</children>
|
|
<compartments
|
|
children="//@nodes.14/@ownedChild/@children.3 //@nodes.14/@ownedChild/@children.0 //@nodes.14/@ownedChild/@children.1 //@nodes.14/@ownedChild/@children.2 //@nodes.14/@ownedChild/@children.4 //@nodes.14/@ownedChild/@children.5">
|
|
<compartment
|
|
href="classDiagram_auxiliary.gmfgraph#frame contents"/>
|
|
</compartments>
|
|
</ownedChild>
|
|
</nodes>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Generalization"/>
|
|
<domainSpecialization
|
|
body="self.generalizationSet ->size() = 0"/>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier/generalization"/>
|
|
<tool
|
|
xsi:type="gmftool:GenericTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.2"/>
|
|
<diagramLink
|
|
href="../../../plugin/org.eclipse.gmf.graphdef/models/classDiagram.gmfgraph#SolidConnectionWDstClosedArrow"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Generalization/general"/>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/>
|
|
<domainSpecialization
|
|
body="(self.oclIsTypeOf(uml::Dependency) or self.oclIsTypeOf(uml::Abstraction) or self.oclIsTypeOf(uml::Substitution) or self.oclIsTypeOf(uml::Usage)) and self.supplier->size() = 1 and self.client->size() = 1 and self.supplier->forAll(e|not e.oclIsKindOf(uml::Interface))"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_dependencies.gmfgraph#Dependency_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_dependencies.gmfgraph#Dependency_type"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<tool
|
|
xsi:type="gmftool:GenericTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.1/@tools.0"/>
|
|
<diagramLink
|
|
href="classDiagram_dependencies.gmfgraph#BinaryDependencyLink"/>
|
|
<sourceMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/client"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/supplier"/>
|
|
<creationConstraints>
|
|
<targetEnd
|
|
body="not self.oclIsKindOf(uml::Interface)
"/>
|
|
</creationConstraints>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
<domainSpecialization
|
|
body="self.association.oclIsTypeOf(uml::AssociationClass)"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_targetRole"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_targetMultiplicity"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Association/ownedEnd"/>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.8"/>
|
|
<diagramLink
|
|
href="../../../plugin/org.eclipse.gmf.graphdef/models/basic.gmfgraph#Link"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TypedElement/type"/>
|
|
</links>
|
|
<links>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.5"/>
|
|
<diagramLink
|
|
href="../../../plugin/org.eclipse.gmf.graphdef/models/classDiagram.gmfgraph#DashedConnection"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Constraint/constrainedElement"/>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
|
|
<domainSpecialization
|
|
body="not self.oclIsTypeOf(uml::AssociationClass)"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_sourceRole"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_targetRole"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping"
|
|
editPattern="">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_sourceOptions"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_targetOptions"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_sourceMultiplicity"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_associations.gmfgraph#AssociationLink_targetMultiplicity"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<tool
|
|
xsi:type="gmftool:GenericTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.0/@tools.0"/>
|
|
<diagramLink
|
|
href="classDiagram_associations.gmfgraph#AssociationLink"/>
|
|
<sourceMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TypedElement/type"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//TypedElement/type"/>
|
|
</links>
|
|
<links>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.6"/>
|
|
<diagramLink
|
|
href="classDiagram_dependencies.gmfgraph#BinaryDependencyLink"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/supplier"/>
|
|
</links>
|
|
<links>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.7"/>
|
|
<diagramLink
|
|
href="classDiagram_dependencies.gmfgraph#NAryDependencyBeginningLink"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/client"/>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InterfaceRealization"/>
|
|
<domainSpecialization
|
|
body="self.supplier->forAll(e|e.oclIsKindOf(uml::Interface))"/>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//BehavioredClassifier/interfaceRealization"/>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.3"/>
|
|
<diagramLink
|
|
href="classDiagram_interfaces.gmfgraph#ProvidedInterfaceLink"/>
|
|
<sourceMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InterfaceRealization/implementingClassifier"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//InterfaceRealization/contract"/>
|
|
<creationConstraints>
|
|
<targetEnd
|
|
body="self.oclIsKindOf(uml::Interface)"/>
|
|
</creationConstraints>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Realization"/>
|
|
<domainSpecialization
|
|
body="self.oclIsTypeOf(uml::Realization)"/>
|
|
<labelMappings
|
|
xsi:type="gmfmap:FeatureLabelMapping">
|
|
<diagramLabel
|
|
href="classDiagram_dependencies.gmfgraph#Dependency_name"/>
|
|
<features
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement/name"/>
|
|
</labelMappings>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.9"/>
|
|
<diagramLink
|
|
href="classDiagram_dependencies.gmfgraph#RealizationDependencyLink"/>
|
|
<sourceMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/client"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/supplier"/>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Generalization"/>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier/generalization"/>
|
|
<tool
|
|
xsi:type="gmftool:GenericTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.2"/>
|
|
<diagramLink
|
|
href="../../../plugin/org.eclipse.gmf.graphdef/models/basic.gmfgraph#Link"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Generalization/generalizationSet"/>
|
|
</links>
|
|
<links>
|
|
<diagramLink
|
|
href="../../../plugin/org.eclipse.gmf.graphdef/models/classDiagram.gmfgraph#SolidConnectionWDstClosedArrow"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Generalization/general"/>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Usage"/>
|
|
<domainSpecialization
|
|
body="self.supplier->forAll(e|e.oclIsKindOf(uml::Interface))"/>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<tool
|
|
xsi:type="gmftool:CreationTool"
|
|
href="classDiagram.gmftool#//@palette/@tools.2/@tools.4"/>
|
|
<diagramLink
|
|
href="classDiagram_interfaces.gmfgraph#RequiredInterfaceLink"/>
|
|
<sourceMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/client"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Dependency/supplier"/>
|
|
<creationConstraints>
|
|
<sourceEnd
|
|
body="self.oclIsKindOf(uml::Classifier)"/>
|
|
<targetEnd
|
|
body="self.oclIsKindOf(uml::Interface)"/>
|
|
</creationConstraints>
|
|
</links>
|
|
<links>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//AssociationClass"/>
|
|
<containmentFeature
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package/packagedElement"/>
|
|
<diagramLink
|
|
href="classDiagram_associations.gmfgraph#AssociationClass2RhombConnector"/>
|
|
<sourceMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier/collaborationUse"/>
|
|
<linkMetaFeature
|
|
xsi:type="ecore:EReference"
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier/collaborationUse"/>
|
|
</links>
|
|
<diagram>
|
|
<diagramCanvas
|
|
href="../../../plugin/org.eclipse.gmf.graphdef/models/basic.gmfgraph#Surface"/>
|
|
<domainModel
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#/"/>
|
|
<domainMetaElement
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
|
|
<palette
|
|
href="classDiagram.gmftool#//@palette"/>
|
|
</diagram>
|
|
<audits
|
|
id="pyUml-ac1"
|
|
name="PyUML Live Validation"
|
|
description="Python-specific UML validation results">
|
|
<audits
|
|
name="Protected Element Info"
|
|
description="Info when using "protected""
|
|
id="PyUML-rule1"
|
|
severity="INFO"
|
|
useInLiveMode="true"
|
|
message="Protected Elements in Python starting with "_" are only convention">
|
|
<rule
|
|
body="self.visibility <> VisibilityKind::protected"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="PackageWarning"
|
|
description="Warning when using visibility "Package""
|
|
id="PyUML-rule2"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message=""Package" visibility is not supported by Python">
|
|
<rule
|
|
body="self.visibility = VisibilityKind::private or self.visibility = VisibilityKind::public or self.visibility = VisibilityKind::protected"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="privAttr"
|
|
description="private attributes must start with "__""
|
|
id="PyUML-rule3"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="Private attribute does not start with "__"">
|
|
<rule
|
|
body="self.visibility <> VisibilityKind::private or self.name.substring(1,2) = '__'"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="privMethod"
|
|
description="private methods must start with "__""
|
|
id="PyUML-rule4"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="Private method does not start with "__"">
|
|
<rule
|
|
body="self.visibility <> VisibilityKind::private or self.name.substring(1,2) = '__'"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="protectedAttribute"
|
|
description="private attributes must start with "__""
|
|
id="PyUML-rule5"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="Protected attribute does not start with "_"">
|
|
<rule
|
|
body="self.visibility <> VisibilityKind::protected or self.name.substring(1,1) = '_'"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="protectedMethod"
|
|
description="private method must start with "__""
|
|
id="PyUML-rule6"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="Protected method does not start with "_"">
|
|
<rule
|
|
body="self.visibility <> VisibilityKind::protected or self.name.substring(1,1) = '_'"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="abstract operator"
|
|
description="Abstract classes are not supported in Python."
|
|
id="PyUML-rule7"
|
|
severity="INFO"
|
|
useInLiveMode="true"
|
|
message="Abstract classes are not supported in Python.">
|
|
<rule
|
|
body="not self.isAbstract"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="overloadedMethods"
|
|
description="Multiple Methods with same name are not supported in Python - use default values for Overloading!"
|
|
id="PyUML-rule8"
|
|
useInLiveMode="true"
|
|
message="Multiple methods with same name are not supported in Python - use default values for overloading!">
|
|
<rule
|
|
body="self.getOperations()->forAll(op1, op2 | op1<>op2 implies op1.name <> op2.name)"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="interfaceInfo"
|
|
description="UML Interfaces are reproduced as classes in Python Code"
|
|
id="PyUML-rule9"
|
|
severity="INFO"
|
|
useInLiveMode="true"
|
|
message="UML interfaces are realized as classes in Python Code">
|
|
<rule
|
|
body="false"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="objectMethodWithoutSelf"
|
|
description="This method will be realized as static unless you add "self" as first parameter!"
|
|
id="PyUML-rule10"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="This method will be realized as static unless you add "self" as first parameter!">
|
|
<rule
|
|
body="self.isStatic or (not self.ownedParameter->forAll(param | param.name <> 'self' ))"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="staticMethodWithSelf"
|
|
description="This method will be realized as non-static unless you remove the "self" parameter!"
|
|
id="PyUML-rule11"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="This method will be realized as non-static unless you remove the "self" parameter!">
|
|
<rule
|
|
body="(not self.isStatic) or self.ownedParameter->forAll(param | param.name <> 'self' )"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="TypedParameter"
|
|
description="Typed parameters are not supported in Python."
|
|
id="PyUML-rule12"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="Typed parameters are not supported in Python.">
|
|
<rule
|
|
body="self.name = null or self.type = null"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="TypedMethod"
|
|
description="Method return types are not supported in Python."
|
|
id="PyUML-rule13"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="Method return types are not supported in Python.">
|
|
<rule
|
|
body="self.type = null"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="TypedAttribute"
|
|
description="Typed attributes are not supported in Python."
|
|
id="PyUML-rule14"
|
|
severity="WARNING"
|
|
useInLiveMode="true"
|
|
message="Typed attributes are not supported in Python.">
|
|
<rule
|
|
body="self.name = null or self.type = null or self.association <> null"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
|
|
</target>
|
|
</audits>
|
|
<audits
|
|
name="InOutParameter"
|
|
description="Only incoming Parameters are supported in Python."
|
|
id="PyUML-rule15"
|
|
severity="WARNING"
|
|
message="Only incoming Parameters are supported in Python.">
|
|
<rule
|
|
body="self.direction = null or (self.direction <> ParameterDirectionKind::out and self.direction <> ParameterDirectionKind::inout)"/>
|
|
<target
|
|
xsi:type="gmfmap:DomainElementTarget">
|
|
<element
|
|
href="../../../plugin/org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
|
|
</target>
|
|
</audits>
|
|
</audits>
|
|
</gmfmap:Mapping>
|