[447935] ModelMorf friendly files
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.xml
new file mode 100644
index 0000000..9421429
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__-skKVoGEeS2WoXr83SnEA" name="AbstractToConcrete.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/AbstractToConcrete.qvtr">
+ <ownedComment xmi:id="__-skKloGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="__-skK1oGEeS2WoXr83SnEA" name="AbstractToConcrete">
+ <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+ <modelParameter xmi:id="__-skLFoGEeS2WoXr83SnEA" name="uml1">
+ <usedPackage href="ClassMM_IN.xml#__-seoVoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <modelParameter xmi:id="__-skLVoGEeS2WoXr83SnEA" name="uml2">
+ <usedPackage href="ClassMM_IN.xml#__-seoVoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__-skLloGEeS2WoXr83SnEA" name="AbstractClassToConcreteClass" isTopLevel="true">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__-skL1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__-skLFoGEeS2WoXr83SnEA"
+ rootVariable="__-skUFoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__-skMFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skMVoGEeS2WoXr83SnEA" bindsTo="__-skUFoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ <part xmi:id="__-skMloGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-sepVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skM1oGEeS2WoXr83SnEA" bindsTo="__-skUVoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ <part xmi:id="__-skNFoGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-seo1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:BooleanLiteralExp" xmi:id="__-skNVoGEeS2WoXr83SnEA" booleanSymbol="true">
+ <type href="OCL.xml#__-sgoFoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__-skNloGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-sepFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skN1oGEeS2WoXr83SnEA" bindsTo="__-skUloGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__-skOFoGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skOVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTloGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__-skOloGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-seqloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skO1oGEeS2WoXr83SnEA" bindsTo="__-skU1oGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__-skPFoGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skPVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skT1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__-skPloGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-serloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skP1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTVoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__-skQFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__-skLVoGEeS2WoXr83SnEA"
+ rootVariable="__-skVFoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__-skQVoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skQloGEeS2WoXr83SnEA" bindsTo="__-skVFoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ <part xmi:id="__-skQ1oGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-sepFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skRFoGEeS2WoXr83SnEA" bindsTo="__-skVVoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__-skRVoGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skRloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTloGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__-skR1oGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-seqloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__-skSFoGEeS2WoXr83SnEA" bindsTo="__-skVloGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__-skSVoGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skSloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skT1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__-skS1oGEeS2WoXr83SnEA">
+ <referredProperty href="ClassMM_IN.xml#__-serloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__-skTFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__-skTVoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__-skTVoGEeS2WoXr83SnEA" name="t" isRequired="false">
+ <type href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skTloGEeS2WoXr83SnEA" name="acon" isRequired="false">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skT1oGEeS2WoXr83SnEA" name="acopn" isRequired="false">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skUFoGEeS2WoXr83SnEA" name="cc" templateExp="__-skMVoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skUVoGEeS2WoXr83SnEA" name="ac" templateExp="__-skM1oGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skUloGEeS2WoXr83SnEA" name="aco" templateExp="__-skN1oGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skU1oGEeS2WoXr83SnEA" name="acop" templateExp="__-skO1oGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skVFoGEeS2WoXr83SnEA" name="cc" templateExp="__-skQloGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seoloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skVVoGEeS2WoXr83SnEA" name="cco" templateExp="__-skRFoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__-skVloGEeS2WoXr83SnEA" name="ccop" templateExp="__-skSFoGEeS2WoXr83SnEA">
+ <type href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+ </variable>
+ </rule>
+ <ownedKey xmi:id="__-skV1oGEeS2WoXr83SnEA">
+ <identifies href="ClassMM_IN.xml#__-sesFoGEeS2WoXr83SnEA"/>
+ <part href="ClassMM_IN.xml#__-sesVoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="__-skWFoGEeS2WoXr83SnEA">
+ <identifies href="ClassMM_IN.xml#__-sep1oGEeS2WoXr83SnEA"/>
+ <part href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+ <part href="ClassMM_IN.xml#__-seqFoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="__-skWVoGEeS2WoXr83SnEA">
+ <identifies href="ClassMM_IN.xml#__-seq1oGEeS2WoXr83SnEA"/>
+ <part href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+ <part href="ClassMM_IN.xml#__-serVoGEeS2WoXr83SnEA"/>
+ <part href="ClassMM_IN.xml#__-serloGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ </nestedPackage>
+ <unit xmi:id="__-skWloGEeS2WoXr83SnEA" name="UMLMM">
+ <ownedComment xmi:id="__-skW1oGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <usedPackage xmi:type="flatemofqvt:Package" href="ClassMM_IN.xml#__-seoVoGEeS2WoXr83SnEA"/>
+ </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.xml
new file mode 100644
index 0000000..2e1d1ef
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__-seoFoGEeS2WoXr83SnEA" name="ClassMM_IN.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/ClassMM_IN.emof">
+ <nestedPackage xmi:id="__-seoVoGEeS2WoXr83SnEA" name="ClassMM" nsURI="ClassMM">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-seoloGEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="__-seuVoGEeS2WoXr83SnEA __-sev1oGEeS2WoXr83SnEA"
+ superClass="__-sesFoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__-seo1oGEeS2WoXr83SnEA" name="isAbstract">
+ <type href="OCL.xml#__-sgoFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skNFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-sepFoGEeS2WoXr83SnEA" name="operation" type="__-seyVoGEeS2WoXr83SnEA" isComposite="true" opposite="__-seqFoGEeS2WoXr83SnEA">
+ <propertyItem href="AbstractToConcrete.xml#__-skNloGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skQ1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-sepVoGEeS2WoXr83SnEA" name="inheritsFrom" type="__-seoloGEeS2WoXr83SnEA" opposite="__-seploGEeS2WoXr83SnEA">
+ <propertyItem href="AbstractToConcrete.xml#__-skMloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-seploGEeS2WoXr83SnEA" name="Class" type="__-set1oGEeS2WoXr83SnEA" implicit="true" opposite="__-sepVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__-sepVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__-seqFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skMVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skM1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skQloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skUFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skUVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skVFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sep1oGEeS2WoXr83SnEA" name="Operation" templateParameterSubstitution="__-sewloGEeS2WoXr83SnEA __-sey1oGEeS2WoXr83SnEA __-se1FoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__-seqFoGEeS2WoXr83SnEA" name="class" type="__-seoloGEeS2WoXr83SnEA" opposite="__-sepFoGEeS2WoXr83SnEA">
+ <key href="AbstractToConcrete.xml#__-skWFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-seqVoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ <key href="AbstractToConcrete.xml#__-skWFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skOFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skRVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-seqloGEeS2WoXr83SnEA" name="parameter" type="__-sezFoGEeS2WoXr83SnEA" isComposite="true" opposite="__-serVoGEeS2WoXr83SnEA">
+ <propertyItem href="AbstractToConcrete.xml#__-skOloGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skR1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__-serVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skN1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skRFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skUloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skVVoGEeS2WoXr83SnEA"/>
+ <key href="AbstractToConcrete.xml#__-skWFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-seq1oGEeS2WoXr83SnEA" name="Parameter" templateParameterSubstitution="__-sevFoGEeS2WoXr83SnEA __-sexVoGEeS2WoXr83SnEA __-sezloGEeS2WoXr83SnEA __-se11oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__-serFoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skPFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skSVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-serVoGEeS2WoXr83SnEA" name="operation" type="__-sep1oGEeS2WoXr83SnEA" opposite="__-seqloGEeS2WoXr83SnEA">
+ <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-serloGEeS2WoXr83SnEA" name="type" type="__-sesFoGEeS2WoXr83SnEA" opposite="__-sesloGEeS2WoXr83SnEA">
+ <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skPloGEeS2WoXr83SnEA"/>
+ <propertyItem href="AbstractToConcrete.xml#__-skS1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skO1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="AbstractToConcrete.xml#__-skSFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skU1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skVloGEeS2WoXr83SnEA"/>
+ <key href="AbstractToConcrete.xml#__-skWVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-ser1oGEeS2WoXr83SnEA" name="PrimitiveDataType" superClass="__-sesFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sesFoGEeS2WoXr83SnEA" name="Type" templateParameterSubstitution="__-seyFoGEeS2WoXr83SnEA __-se0VoGEeS2WoXr83SnEA __-se2loGEeS2WoXr83SnEA"
+ isAbstract="true">
+ <ownedAttribute xmi:id="__-sesVoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__-shEloGEeS2WoXr83SnEA"/>
+ <key href="AbstractToConcrete.xml#__-skV1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-sesloGEeS2WoXr83SnEA" name="Parameter" type="__-seuloGEeS2WoXr83SnEA" implicit="true" opposite="__-serloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__-ses1oGEeS2WoXr83SnEA" name="dummy" isRequired="false" type="__-setFoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__-setVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__-serloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skP1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skTFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skTVoGEeS2WoXr83SnEA"/>
+ <key href="AbstractToConcrete.xml#__-skV1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-setFoGEeS2WoXr83SnEA" name="dummy" typedElement="__-ses1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__-setVoGEeS2WoXr83SnEA" name="hasType" type="__-sez1oGEeS2WoXr83SnEA" isComposite="true" opposite="__-ses1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__-sirVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="__-setloGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-set1oGEeS2WoXr83SnEA" name="Bag" superClass="__-sevVoGEeS2WoXr83SnEA" typedElement="__-seploGEeS2WoXr83SnEA"
+ elementType="__-seoloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-seuFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-seuVoGEeS2WoXr83SnEA" actual="__-seoloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-shfVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-shfFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__-she1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-seuloGEeS2WoXr83SnEA" name="Bag" superClass="__-sew1oGEeS2WoXr83SnEA" typedElement="__-sesloGEeS2WoXr83SnEA"
+ elementType="__-seq1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-seu1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sevFoGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-shfVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-shfFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__-she1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sevVoGEeS2WoXr83SnEA" name="Collection" elementType="__-seoloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sevloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sev1oGEeS2WoXr83SnEA" actual="__-seoloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sewFoGEeS2WoXr83SnEA" name="Collection" elementType="__-sep1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sewVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sewloGEeS2WoXr83SnEA" actual="__-sep1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sew1oGEeS2WoXr83SnEA" name="Collection" elementType="__-seq1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sexFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sexVoGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sexloGEeS2WoXr83SnEA" name="Collection" elementType="__-sesFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sex1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-seyFoGEeS2WoXr83SnEA" actual="__-sesFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-shv1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-shvloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-shvVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__-sibloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-seyVoGEeS2WoXr83SnEA" name="Set" superClass="__-se0loGEeS2WoXr83SnEA" typedElement="__-sepFoGEeS2WoXr83SnEA"
+ elementType="__-sep1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__-seyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sey1oGEeS2WoXr83SnEA" actual="__-sep1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-sjx1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-sjxloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__-sjxVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sezFoGEeS2WoXr83SnEA" name="Set" superClass="__-se1VoGEeS2WoXr83SnEA" typedElement="__-seqloGEeS2WoXr83SnEA"
+ elementType="__-seq1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__-sezVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sezloGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-sjx1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-sjxloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__-sjxVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sez1oGEeS2WoXr83SnEA" name="Set" superClass="__-se2FoGEeS2WoXr83SnEA" typedElement="__-setVoGEeS2WoXr83SnEA"
+ elementType="__-sesFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__-se0FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-se0VoGEeS2WoXr83SnEA" actual="__-sesFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-sjx1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-sjxloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__-sjxVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-se0loGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sewFoGEeS2WoXr83SnEA"
+ elementType="__-sep1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-se01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-se1FoGEeS2WoXr83SnEA" actual="__-sep1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-skDVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-skDFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-skC1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-se1VoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sew1oGEeS2WoXr83SnEA"
+ elementType="__-seq1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-se1loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-se11oGEeS2WoXr83SnEA" actual="__-seq1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-skDVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-skDFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-skC1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-se2FoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sexloGEeS2WoXr83SnEA"
+ elementType="__-sesFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-se2VoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-se2loGEeS2WoXr83SnEA" actual="__-sesFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__-skDVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__-skDFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__-skC1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/OCL.xml
new file mode 100644
index 0000000..e2f01f8
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/AbstractToConcrete/OCL.xml
@@ -0,0 +1,2760 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__-se21oGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <nestedPackage xmi:id="__-se3FoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se3VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shsloGEeS2WoXr83SnEA __-shtloGEeS2WoXr83SnEA"
+ contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se3loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shqFoGEeS2WoXr83SnEA"
+ contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-shp1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se31oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shrloGEeS2WoXr83SnEA"
+ contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-shrVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se4FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shuloGEeS2WoXr83SnEA"
+ contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se4VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-shoVoGEeS2WoXr83SnEA"
+ contextType="__-shfloGEeS2WoXr83SnEA" resultType="__-sgU1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se4loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siI1oGEeS2WoXr83SnEA __-siNFoGEeS2WoXr83SnEA __-siOVoGEeS2WoXr83SnEA __-siPFoGEeS2WoXr83SnEA __-siQVoGEeS2WoXr83SnEA __-siUFoGEeS2WoXr83SnEA __-siVFoGEeS2WoXr83SnEA __-siWFoGEeS2WoXr83SnEA"
+ contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se41oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siKloGEeS2WoXr83SnEA"
+ contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-siKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se5FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siMVoGEeS2WoXr83SnEA"
+ contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-siMFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se5VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siS1oGEeS2WoXr83SnEA"
+ contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-siSloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se5loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-siRVoGEeS2WoXr83SnEA __-siXFoGEeS2WoXr83SnEA"
+ contextType="__-shwFoGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se51oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjZ1oGEeS2WoXr83SnEA __-sja1oGEeS2WoXr83SnEA"
+ contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se6FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjb1oGEeS2WoXr83SnEA"
+ contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se6VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjVloGEeS2WoXr83SnEA"
+ contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sjHFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se6loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjXVoGEeS2WoXr83SnEA"
+ contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sjXFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se61oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjY1oGEeS2WoXr83SnEA"
+ contextType="__-sjH1oGEeS2WoXr83SnEA" resultType="__-sjYloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se7FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sju1oGEeS2WoXr83SnEA __-sjv1oGEeS2WoXr83SnEA"
+ contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se7VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjw1oGEeS2WoXr83SnEA"
+ contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se7loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjqloGEeS2WoXr83SnEA"
+ contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sgJloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se71oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjsVoGEeS2WoXr83SnEA"
+ contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sjsFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se8FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sjt1oGEeS2WoXr83SnEA"
+ contextType="__-sjdFoGEeS2WoXr83SnEA" resultType="__-sjtloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se8VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj_1oGEeS2WoXr83SnEA __-skA1oGEeS2WoXr83SnEA"
+ contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sgoFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se8loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-skB1oGEeS2WoXr83SnEA"
+ contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se81oGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj7loGEeS2WoXr83SnEA"
+ contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sjxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se9FoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj9VoGEeS2WoXr83SnEA"
+ contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sj9FoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se9VoGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-sj-1oGEeS2WoXr83SnEA"
+ contextType="__-sjyFoGEeS2WoXr83SnEA" resultType="__-sj-loGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__-se9loGEeS2WoXr83SnEA" name="Lambda" superClass="__-si2loGEeS2WoXr83SnEA" typedElement="__-skHVoGEeS2WoXr83SnEA"
+ contextType="__-skDloGEeS2WoXr83SnEA" resultType="__-sibloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="__-se91oGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="__-sfI1oGEeS2WoXr83SnEA __-sgUloGEeS2WoXr83SnEA __-sgbVoGEeS2WoXr83SnEA"
+ superClass="__-si8FoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__-se-FoGEeS2WoXr83SnEA" name="first" type="__-shwFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__-se-VoGEeS2WoXr83SnEA" name="second" type="__-siDloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-se-loGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfJFoGEeS2WoXr83SnEA" typedElement="__-sho1oGEeS2WoXr83SnEA" elementType="__-shp1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-se-1oGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-se_FoGEeS2WoXr83SnEA" actual="__-shp1oGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-se_VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfJ1oGEeS2WoXr83SnEA" typedElement="__-shqloGEeS2WoXr83SnEA" elementType="__-shrVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-se_loGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-se_1oGEeS2WoXr83SnEA" actual="__-shrVoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfAFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfKloGEeS2WoXr83SnEA" typedElement="__-shiloGEeS2WoXr83SnEA" elementType="__-shjloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfAVoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfAloGEeS2WoXr83SnEA" actual="__-shjloGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfA1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfLVoGEeS2WoXr83SnEA" typedElement="__-shlVoGEeS2WoXr83SnEA" elementType="__-shmFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfBFoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfBVoGEeS2WoXr83SnEA" actual="__-shmFoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfBloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfMFoGEeS2WoXr83SnEA" typedElement="__-shmloGEeS2WoXr83SnEA" elementType="__-shnVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfB1oGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfCFoGEeS2WoXr83SnEA" actual="__-shnVoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfCVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfTloGEeS2WoXr83SnEA" typedElement="__-shzloGEeS2WoXr83SnEA __-sh_FoGEeS2WoXr83SnEA __-siHloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfCloGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfC1oGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfDFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfUVoGEeS2WoXr83SnEA" typedElement="__-shwVoGEeS2WoXr83SnEA" elementType="__-shvVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfDVoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfDloGEeS2WoXr83SnEA" actual="__-shvVoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfD1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfV1oGEeS2WoXr83SnEA" typedElement="__-siZloGEeS2WoXr83SnEA" elementType="__-siXloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfEFoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfEVoGEeS2WoXr83SnEA" actual="__-siXloGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfEloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfWloGEeS2WoXr83SnEA" typedElement="__-sia1oGEeS2WoXr83SnEA" elementType="__-siZ1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfE1oGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfFFoGEeS2WoXr83SnEA" actual="__-siZ1oGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfFVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfjVoGEeS2WoXr83SnEA" typedElement="__-sj8FoGEeS2WoXr83SnEA" elementType="__-sj9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfFloGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfF1oGEeS2WoXr83SnEA" actual="__-sj9FoGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-sfGFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__-she1oGEeS2WoXr83SnEA"
+ superClass="__-sfkFoGEeS2WoXr83SnEA" typedElement="__-sj91oGEeS2WoXr83SnEA" elementType="__-sj-loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfGVoGEeS2WoXr83SnEA" signature="__-shfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfGloGEeS2WoXr83SnEA" actual="__-sj-loGEeS2WoXr83SnEA" formal="__-shfVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfG1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sgvloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfHFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfHVoGEeS2WoXr83SnEA" actual="__-sgvloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfHloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shEloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfH1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfIFoGEeS2WoXr83SnEA" actual="__-shEloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfIVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-se91oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfIloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfI1oGEeS2WoXr83SnEA" actual="__-se91oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfJFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shp1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfJVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfJloGEeS2WoXr83SnEA" actual="__-shp1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfJ1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shrVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfKFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfKVoGEeS2WoXr83SnEA" actual="__-shrVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfKloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shjloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfK1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfLFoGEeS2WoXr83SnEA" actual="__-shjloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfLVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shmFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfLloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfL1oGEeS2WoXr83SnEA" actual="__-shmFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfMFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shnVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfMVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfMloGEeS2WoXr83SnEA" actual="__-shnVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfM1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-shlFoGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfNFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfNVoGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfNloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siJVoGEeS2WoXr83SnEA" elementType="__-siKVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfN1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfOFoGEeS2WoXr83SnEA" actual="__-siKVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfOVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siLFoGEeS2WoXr83SnEA" elementType="__-siMFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfOloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfO1oGEeS2WoXr83SnEA" actual="__-siMFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfPFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh4VoGEeS2WoXr83SnEA" elementType="__-sh4FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfPVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfPloGEeS2WoXr83SnEA" actual="__-sh4FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfP1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh6FoGEeS2WoXr83SnEA" elementType="__-sh7FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfQFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfQVoGEeS2WoXr83SnEA" actual="__-sh7FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfQloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh9VoGEeS2WoXr83SnEA" elementType="__-sh9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfQ1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfRFoGEeS2WoXr83SnEA" actual="__-sh9FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfRVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siD1oGEeS2WoXr83SnEA" elementType="__-siDloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfRloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfR1oGEeS2WoXr83SnEA" actual="__-siDloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfSFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siEFoGEeS2WoXr83SnEA" elementType="__-siE1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfSVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfSloGEeS2WoXr83SnEA" actual="__-siE1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfS1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-siFVoGEeS2WoXr83SnEA" elementType="__-siGFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfTFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfTVoGEeS2WoXr83SnEA" actual="__-siGFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfTloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfT1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfUFoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfUVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-shvVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfUloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfU1oGEeS2WoXr83SnEA" actual="__-shvVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfVFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfVVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfVloGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfV1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-siXloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfWFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfWVoGEeS2WoXr83SnEA" actual="__-siXloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfWloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-siZ1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfW1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfXFoGEeS2WoXr83SnEA" actual="__-siZ1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfXVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-shiVoGEeS2WoXr83SnEA __-sh51oGEeS2WoXr83SnEA __-sjMloGEeS2WoXr83SnEA __-sjhVoGEeS2WoXr83SnEA __-sj1loGEeS2WoXr83SnEA"
+ elementType="__-sibloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfXloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfX1oGEeS2WoXr83SnEA" actual="__-sibloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfYFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sirVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfYVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfYloGEeS2WoXr83SnEA" actual="__-sirVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfY1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-si5loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfZFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfZVoGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfZloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjEVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfZ1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfaFoGEeS2WoXr83SnEA" actual="__-sjEVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfaVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjXFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfaloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfa1oGEeS2WoXr83SnEA" actual="__-sjXFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfbFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjYloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfbVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfbloGEeS2WoXr83SnEA" actual="__-sjYloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfb1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfcFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfcVoGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfcloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfc1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfdFoGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfdVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfdloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfd1oGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfeFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfeVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfeloGEeS2WoXr83SnEA" actual="__-sjH1oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfe1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjsFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sffFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sffVoGEeS2WoXr83SnEA" actual="__-sjsFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sffloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjtloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sff1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfgFoGEeS2WoXr83SnEA" actual="__-sjtloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfgVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfgloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfg1oGEeS2WoXr83SnEA" actual="__-sjiloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfhFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjnVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfhVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfhloGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfh1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjoloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfiFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfiVoGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfiloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfi1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfjFoGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfjVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfjloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfj1oGEeS2WoXr83SnEA" actual="__-sj9FoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj-loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfkVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfkloGEeS2WoXr83SnEA" actual="__-sj-loGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj21oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sflFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sflVoGEeS2WoXr83SnEA" actual="__-sj21oGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sflloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj5VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfl1oGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfmFoGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" elementType="__-sj6loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfmloGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfm1oGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfnFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sj4VoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfnVoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfnloGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sfn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__-shvVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-skFFoGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfoFoGEeS2WoXr83SnEA" signature="__-shvloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfoVoGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-shv1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfoloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sheloGEeS2WoXr83SnEA" instanceType="__-sheVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfo1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfpFoGEeS2WoXr83SnEA" actual="__-sheVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfpVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-shmVoGEeS2WoXr83SnEA" instanceType="__-shmFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfploGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfp1oGEeS2WoXr83SnEA" actual="__-shmFoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfqFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-shnloGEeS2WoXr83SnEA" instanceType="__-shnVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfqVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfqloGEeS2WoXr83SnEA" actual="__-shnVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfq1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siFFoGEeS2WoXr83SnEA" instanceType="__-siE1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfrFoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfrVoGEeS2WoXr83SnEA" actual="__-siE1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfrloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siGVoGEeS2WoXr83SnEA" instanceType="__-siGFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfr1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfsFoGEeS2WoXr83SnEA" actual="__-siGFoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfsVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sifVoGEeS2WoXr83SnEA" instanceType="__-sifFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfsloGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfs1oGEeS2WoXr83SnEA" actual="__-sifFoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sftFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siiFoGEeS2WoXr83SnEA" instanceType="__-sih1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sftVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sftloGEeS2WoXr83SnEA" actual="__-sih1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sft1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sikFoGEeS2WoXr83SnEA" instanceType="__-sij1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfuFoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfuVoGEeS2WoXr83SnEA" actual="__-sij1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfuloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-siyFoGEeS2WoXr83SnEA" instanceType="__-six1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfu1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfvFoGEeS2WoXr83SnEA" actual="__-six1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfvVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sizloGEeS2WoXr83SnEA" instanceType="__-sizVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfvloGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfv1oGEeS2WoXr83SnEA" actual="__-sizVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfwFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-si01oGEeS2WoXr83SnEA" instanceType="__-si0loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfwVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfwloGEeS2WoXr83SnEA" actual="__-si0loGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfw1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" instanceType="__-sitVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfxFoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfxVoGEeS2WoXr83SnEA" actual="__-sitVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfxloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-simFoGEeS2WoXr83SnEA __-si1VoGEeS2WoXr83SnEA" instanceType="__-si5loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfx1oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfyFoGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfyVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" instanceType="__-si-1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfyloGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfy1oGEeS2WoXr83SnEA" actual="__-si-1oGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfzFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjSloGEeS2WoXr83SnEA" instanceType="__-sjSVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sfzVoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sfzloGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sfz1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjT1oGEeS2WoXr83SnEA" instanceType="__-sjTloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf0FoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf0VoGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf0loGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjnloGEeS2WoXr83SnEA" instanceType="__-sjnVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf01oGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf1FoGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf1VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sjo1oGEeS2WoXr83SnEA" instanceType="__-sjoloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf1loGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf11oGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf2FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sj5loGEeS2WoXr83SnEA" instanceType="__-sj5VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf2VoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf2loGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-sf21oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__-siZ1oGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" typedElement="__-sj61oGEeS2WoXr83SnEA" instanceType="__-sj6loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf3FoGEeS2WoXr83SnEA" signature="__-siaFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf3VoGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-siaVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf3loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfG1oGEeS2WoXr83SnEA" elementType="__-sgvloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf31oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf4FoGEeS2WoXr83SnEA" actual="__-sgvloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf4VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfHloGEeS2WoXr83SnEA" elementType="__-shEloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf4loGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf41oGEeS2WoXr83SnEA" actual="__-shEloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf5FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfM1oGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf5VoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf5loGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf51oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfTloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf6FoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf6VoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf6loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfVFoGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf61oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf7FoGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf7VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfaVoGEeS2WoXr83SnEA" elementType="__-sjXFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf7loGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf71oGEeS2WoXr83SnEA" actual="__-sjXFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf8FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfbFoGEeS2WoXr83SnEA" elementType="__-sjYloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf8VoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf8loGEeS2WoXr83SnEA" actual="__-sjYloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf81oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfb1oGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf9FoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf9VoGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf9loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfcloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf91oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf-FoGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf-VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfdVoGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf-loGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf-1oGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf_FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfeFoGEeS2WoXr83SnEA" typedElement="__-sjLFoGEeS2WoXr83SnEA __-sjQ1oGEeS2WoXr83SnEA" elementType="__-sjH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sf_VoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sf_loGEeS2WoXr83SnEA" actual="__-sjH1oGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sf_1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfe1oGEeS2WoXr83SnEA" elementType="__-sjsFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgAFoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgAVoGEeS2WoXr83SnEA" actual="__-sjsFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgAloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sffloGEeS2WoXr83SnEA" elementType="__-sjtloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgA1oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgBFoGEeS2WoXr83SnEA" actual="__-sjtloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgBVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfgVoGEeS2WoXr83SnEA" elementType="__-sjiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgBloGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgB1oGEeS2WoXr83SnEA" actual="__-sjiloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgCFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfhFoGEeS2WoXr83SnEA" elementType="__-sjnVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgCVoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgCloGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgC1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfh1oGEeS2WoXr83SnEA" elementType="__-sjoloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgDFoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgDVoGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgDloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfiloGEeS2WoXr83SnEA" typedElement="__-sjf1oGEeS2WoXr83SnEA __-sjl1oGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgD1oGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgEFoGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgEVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfnFoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgEloGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgE1oGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgFFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__-sjDloGEeS2WoXr83SnEA"
+ superClass="__-sfn1oGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgFVoGEeS2WoXr83SnEA" signature="__-sjD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgFloGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-sjEFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgF1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sf51oGEeS2WoXr83SnEA __-sgcVoGEeS2WoXr83SnEA" typedElement="__-sh0FoGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgGFoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgGVoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgGloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sf6loGEeS2WoXr83SnEA __-sgdFoGEeS2WoXr83SnEA" typedElement="__-siYFoGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgG1oGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgHFoGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgHVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sf81oGEeS2WoXr83SnEA __-sggFoGEeS2WoXr83SnEA" typedElement="__-sjM1oGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgHloGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgH1oGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgIFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sf9loGEeS2WoXr83SnEA __-sgg1oGEeS2WoXr83SnEA" typedElement="__-sjRloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgIVoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgIloGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgI1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sf-VoGEeS2WoXr83SnEA __-sghloGEeS2WoXr83SnEA" typedElement="__-sjS1oGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgJFoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgJVoGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgJloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sgDloGEeS2WoXr83SnEA __-sgjFoGEeS2WoXr83SnEA" typedElement="__-sjqFoGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgJ1oGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgKFoGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgKVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sgEVoGEeS2WoXr83SnEA __-sgmFoGEeS2WoXr83SnEA" typedElement="__-skBVoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgKloGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgK1oGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sgLFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__-sjHFoGEeS2WoXr83SnEA"
+ superClass="__-sgFFoGEeS2WoXr83SnEA __-sgm1oGEeS2WoXr83SnEA" typedElement="__-skG1oGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgLVoGEeS2WoXr83SnEA" signature="__-sjHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgLloGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-sjHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgL1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sf3loGEeS2WoXr83SnEA" elementType="__-sgvloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgMFoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgMVoGEeS2WoXr83SnEA" actual="__-sgvloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgMloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sf4VoGEeS2WoXr83SnEA" typedElement="__-shKVoGEeS2WoXr83SnEA __-shaVoGEeS2WoXr83SnEA __-sha1oGEeS2WoXr83SnEA __-shbloGEeS2WoXr83SnEA"
+ elementType="__-shEloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgM1oGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgNFoGEeS2WoXr83SnEA" actual="__-shEloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgNVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sf5FoGEeS2WoXr83SnEA" typedElement="__-shuFoGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgNloGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgN1oGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgOFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sf51oGEeS2WoXr83SnEA" typedElement="__-sh0loGEeS2WoXr83SnEA __-siWloGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgOVoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgOloGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgO1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sf7VoGEeS2WoXr83SnEA" typedElement="__-sjWFoGEeS2WoXr83SnEA" elementType="__-sjXFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgPFoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgPVoGEeS2WoXr83SnEA" actual="__-sjXFoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgPloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sf8FoGEeS2WoXr83SnEA" typedElement="__-sjX1oGEeS2WoXr83SnEA" elementType="__-sjYloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgP1oGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgQFoGEeS2WoXr83SnEA" actual="__-sjYloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgQVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sf_1oGEeS2WoXr83SnEA" typedElement="__-sjrFoGEeS2WoXr83SnEA" elementType="__-sjsFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgQloGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgQ1oGEeS2WoXr83SnEA" actual="__-sjsFoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgRFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sgAloGEeS2WoXr83SnEA" typedElement="__-sjs1oGEeS2WoXr83SnEA" elementType="__-sjtloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgRVoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgRloGEeS2WoXr83SnEA" actual="__-sjtloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgR1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sgBVoGEeS2WoXr83SnEA" typedElement="__-sjhloGEeS2WoXr83SnEA" elementType="__-sjiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgSFoGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgSVoGEeS2WoXr83SnEA" actual="__-sjiloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgSloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sgCFoGEeS2WoXr83SnEA" typedElement="__-sjmloGEeS2WoXr83SnEA" elementType="__-sjnVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgS1oGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgTFoGEeS2WoXr83SnEA" actual="__-sjnVoGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sgTVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__-sjcVoGEeS2WoXr83SnEA"
+ superClass="__-sgC1oGEeS2WoXr83SnEA" typedElement="__-sjn1oGEeS2WoXr83SnEA" elementType="__-sjoloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgTloGEeS2WoXr83SnEA" signature="__-sjcloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgT1oGEeS2WoXr83SnEA" actual="__-sjoloGEeS2WoXr83SnEA" formal="__-sjc1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgUFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sga1oGEeS2WoXr83SnEA" typedElement="__-siCloGEeS2WoXr83SnEA" elementType="__-se91oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgUVoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgUloGEeS2WoXr83SnEA" actual="__-se91oGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgU1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sgbloGEeS2WoXr83SnEA" typedElement="__-shn1oGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgVFoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgVVoGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgVloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sgcVoGEeS2WoXr83SnEA" typedElement="__-sh1FoGEeS2WoXr83SnEA __-sh_1oGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgV1oGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgWFoGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgWVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sgeloGEeS2WoXr83SnEA" typedElement="__-sis1oGEeS2WoXr83SnEA" elementType="__-sirVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgWloGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgW1oGEeS2WoXr83SnEA" actual="__-sirVoGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgXFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sgfVoGEeS2WoXr83SnEA" typedElement="__-sgp1oGEeS2WoXr83SnEA __-siYloGEeS2WoXr83SnEA __-sidloGEeS2WoXr83SnEA __-sir1oGEeS2WoXr83SnEA __-sivVoGEeS2WoXr83SnEA __-siw1oGEeS2WoXr83SnEA __-sjAloGEeS2WoXr83SnEA"
+ elementType="__-si5loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgXVoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgXloGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgX1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sgj1oGEeS2WoXr83SnEA" typedElement="__-sj11oGEeS2WoXr83SnEA" elementType="__-sj21oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgYFoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgYVoGEeS2WoXr83SnEA" actual="__-sj21oGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgYloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sgkloGEeS2WoXr83SnEA" typedElement="__-sj4loGEeS2WoXr83SnEA" elementType="__-sj5VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgY1oGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgZFoGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgZVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sglVoGEeS2WoXr83SnEA" typedElement="__-sj51oGEeS2WoXr83SnEA" elementType="__-sj6loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgZloGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgZ1oGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sgaFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__-sjxVoGEeS2WoXr83SnEA"
+ superClass="__-sgm1oGEeS2WoXr83SnEA" typedElement="__-skEloGEeS2WoXr83SnEA __-skFVoGEeS2WoXr83SnEA __-skGFoGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgaVoGEeS2WoXr83SnEA" signature="__-sjxloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgaloGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-sjx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sga1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfIVoGEeS2WoXr83SnEA" elementType="__-se91oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgbFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgbVoGEeS2WoXr83SnEA" actual="__-se91oGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgbloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfM1oGEeS2WoXr83SnEA" elementType="__-shfloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgb1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgcFoGEeS2WoXr83SnEA" actual="__-shfloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgcVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfTloGEeS2WoXr83SnEA" typedElement="__-siAVoGEeS2WoXr83SnEA" elementType="__-shwFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgcloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgc1oGEeS2WoXr83SnEA" actual="__-shwFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgdFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfVFoGEeS2WoXr83SnEA" elementType="__-siZFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgdVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgdloGEeS2WoXr83SnEA" actual="__-siZFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgd1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfXVoGEeS2WoXr83SnEA" typedElement="__-sjIloGEeS2WoXr83SnEA __-sjy1oGEeS2WoXr83SnEA __-skEVoGEeS2WoXr83SnEA __-skF1oGEeS2WoXr83SnEA"
+ elementType="__-sibloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgeFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgeVoGEeS2WoXr83SnEA" actual="__-sibloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgeloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfYFoGEeS2WoXr83SnEA" elementType="__-sirVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sge1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgfFoGEeS2WoXr83SnEA" actual="__-sirVoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgfVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfY1oGEeS2WoXr83SnEA" elementType="__-si5loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgfloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgf1oGEeS2WoXr83SnEA" actual="__-si5loGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sggFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfb1oGEeS2WoXr83SnEA" elementType="__-sjNloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sggVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sggloGEeS2WoXr83SnEA" actual="__-sjNloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgg1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfcloGEeS2WoXr83SnEA" elementType="__-sjSVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sghFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sghVoGEeS2WoXr83SnEA" actual="__-sjSVoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sghloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfdVoGEeS2WoXr83SnEA" elementType="__-sjTloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgh1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgiFoGEeS2WoXr83SnEA" actual="__-sjTloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgiVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfeFoGEeS2WoXr83SnEA" elementType="__-sjH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgiloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgi1oGEeS2WoXr83SnEA" actual="__-sjH1oGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgjFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfiloGEeS2WoXr83SnEA" elementType="__-sjdFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgjVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgjloGEeS2WoXr83SnEA" actual="__-sjdFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgj1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfk1oGEeS2WoXr83SnEA" elementType="__-sj21oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgkFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgkVoGEeS2WoXr83SnEA" actual="__-sj21oGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgkloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sflloGEeS2WoXr83SnEA" elementType="__-sj5VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgk1oGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sglFoGEeS2WoXr83SnEA" actual="__-sj5VoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sglVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfmVoGEeS2WoXr83SnEA" elementType="__-sj6loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sglloGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgl1oGEeS2WoXr83SnEA" actual="__-sj6loGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgmFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfnFoGEeS2WoXr83SnEA" elementType="__-sjyFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgmVoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgmloGEeS2WoXr83SnEA" actual="__-sjyFoGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sgm1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__-skC1oGEeS2WoXr83SnEA"
+ superClass="__-sfn1oGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__-sgnFoGEeS2WoXr83SnEA" signature="__-skDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__-sgnVoGEeS2WoXr83SnEA" actual="__-skDloGEeS2WoXr83SnEA" formal="__-skDVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="__-sgnloGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <ownedComment xmi:id="__-sgn1oGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.
This sub clause contains all standard types defined within OCL, including all the operations defined on those types.
For each operation the signature and a description of the semantics is given.
Within the description, the reserved word ‘result’ is used to refer to the value that results from evaluating the operation.
In several places, post conditions are used to describe properties of the result.
When there is more than one postcondition, all postconditions must be true.
A similar thing is true for multiple preconditions.
If these are used, the operation is only defined if all preconditions evaluate to oclText[true].

heading:1[Introduction]

The structure, syntax, and semantics of the OCL is defined in Clauses 8 (“Abstract Syntax”), 9 (“Concrete Syntax”),
and 10 (“Semantics Described using UML”).
This sub clause adds another part to the OCL definition: a library of predefined types and operations.
Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,
where the language definition and the standard libraries are both mandatory parts of the complete language definition.

The OCL standard library defines a number of types.
It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.
These are familiar from many other languages. The second part of the standard library consists of the collection types.
They are Bag, Set, Sequence, and Collection where Collection is an abstract type.
Note that all types defined in the OCL standard library are instances of an abstract syntax class.
The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.

Next to definitions of types the OCL standard library defines a number of template expressions.
Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.
For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.

The Standard Library may be extended with new types, new operations and new iterators.
In particular new operations can be defined for collections.

Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted
in an appropriate fashion.
A locale is defined as a concatenation of up to three character sequences separated by underscores,
with the first sequence identifying the language and the second sequence identifying the country.
The third sequence is empty but may encode an implementation-specific variant.
Trailing empty strings and separators may be omitted.

The character sequences for languages are defined by ISO 639.

The character sequences for countries are defined by ISO 3166.

‘fr_CA’ therefore identifies the locale for the French language in the Canada country.

Comparison of strings and consequently the collation order of Collection::sortedBy()
conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.

The locale is ‘en_us’ by default but may be configured by a property constraint on OclAny::oclLocale.

The prevailing locale is defined by the prevailing value of oclLocale within the current environment;
it may therefore be changed temporarily by using a Let expression.
let oclLocale : String = ‘fr_CA’ in aString.toUpperCase()

heading:1[Iterators]

This sub clause defines the standard OCL iterator expressions.
In the abstract syntax these are all instances of IteratorExp.
These iterator expressions always have a collection expression as their source,
as is defined in the well-formedness rules in Clause 8 (“Abstract Syntax”).
The defined iterator expressions are shown per source collection type.
The semantics of each iterator expression is defined through a mapping from the iterator to the ‘iterate’ construct.
This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.

In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,
and the righthand side of the equals sign is the equivalent as an IterateExp.
The names source, body, and iterator refer to the role names in the abstract syntax:

source	The source expression of the IteratorExp.

body	The body expression of the IteratorExp.

iterator	The iterator variable of the IteratorExp.

result	The result variable of the IterateExp.

heading:2[Extending the Standard Library with Iterator Expressions]

It is possible to add new iterator expressions in the standard library.
If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,
in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-sgoFoGEeS2WoXr83SnEA" name="Boolean" superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__-sgoVoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgoloGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__-sgo1oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgpFoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgpVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__-sgploGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgp1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+ <ownedComment xmi:id="__-sgqFoGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgqVoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isInvalidating="true" isValidating="true" precedence="__-skJVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgqloGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[true]."/>
+ <bodyExpression xmi:id="__-sgq1oGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = false then false
+ else self
+ endif endif
+ else if self = false then false
+ else if b.oclIsInvalid() then b
+ else if b = false then false
+ else if self = null then null
+ else if b = null then null
+ else true
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__-sgrFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgrVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isInvalidating="true" isValidating="true" precedence="__-skKFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgrloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="__-sgr1oGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = false then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then b
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__-sgsFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgsVoGEeS2WoXr83SnEA" name="not" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+ precedence="__-skIFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgsloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].
oclText[false] if oclText[self] is oclText[true].
oclText[null] if oclText[self] is oclText[null].
Otherwise oclText[invalid]."/>
+ <bodyExpression xmi:id="__-sgs1oGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if self = null then null
+ else self = false
+ endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgtFoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+ isInvalidating="true" isValidating="true" precedence="__-skJloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgtVoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="__-sgtloGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = true then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then null
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__-sgt1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sguFoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__-sguVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sguloGEeS2WoXr83SnEA" name="xor" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+ precedence="__-skJ1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgu1oGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].
oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null]."/>
+ <bodyExpression xmi:id="__-sgvFoGEeS2WoXr83SnEA" type="__-sgoFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if b.oclIsInvalid() then b
+ else if self = null then null
+ else if b = null then null
+ else self <> b
+ endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__-sgvVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgoVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgpFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgqVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgq1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgrFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgrVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgr1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgsFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgsVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgs1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sgtFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgtloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgt1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sguloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__-sgvFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sgvVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg71oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg8loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg9VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg-FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg-1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg_loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shFloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shGVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shHFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shHloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shIFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shI1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shMVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shNFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shPVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shSloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shWVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shcVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shf1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shgVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shyFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shy1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh2VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh3FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh7VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sh8FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siAloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siCFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siM1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siN1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siO1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siP1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siQ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__-siTloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sicFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sic1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sifloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sigVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sig1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siiVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sii1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sikVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sinloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sioVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sipFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sip1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sit1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siuloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siv1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-siwFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siwVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-siwloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siyVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siyloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-siz1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si1FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si1loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-si11oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si3loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si4FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si4loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si8loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si9FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si-FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si_VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si_1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sjBVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjBloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sjB1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjCFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjCVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjCloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sjC1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjI1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjJVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjdVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjd1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjzFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjzloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-seo1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:BooleanLiteralExp" href="AbstractToConcrete.xml#__-skNVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-sgvloGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="__-sfHVoGEeS2WoXr83SnEA __-sf4FoGEeS2WoXr83SnEA __-sgMVoGEeS2WoXr83SnEA"
+ superClass="__-sg4FoGEeS2WoXr83SnEA" typedElement="__-sgv1oGEeS2WoXr83SnEA __-sgwloGEeS2WoXr83SnEA __-sgxVoGEeS2WoXr83SnEA __-sgx1oGEeS2WoXr83SnEA __-sgzVoGEeS2WoXr83SnEA __-sgz1oGEeS2WoXr83SnEA __-sg0loGEeS2WoXr83SnEA __-sg1FoGEeS2WoXr83SnEA __-sg1VoGEeS2WoXr83SnEA __-sg2FoGEeS2WoXr83SnEA __-sg21oGEeS2WoXr83SnEA __-sg3VoGEeS2WoXr83SnEA __-shA1oGEeS2WoXr83SnEA __-shBloGEeS2WoXr83SnEA __-shDloGEeS2WoXr83SnEA __-shKFoGEeS2WoXr83SnEA __-shK1oGEeS2WoXr83SnEA __-shN1oGEeS2WoXr83SnEA __-shOloGEeS2WoXr83SnEA __-shSFoGEeS2WoXr83SnEA __-shV1oGEeS2WoXr83SnEA __-shWFoGEeS2WoXr83SnEA __-shW1oGEeS2WoXr83SnEA __-shxFoGEeS2WoXr83SnEA __-shxloGEeS2WoXr83SnEA __-sh1loGEeS2WoXr83SnEA __-siGloGEeS2WoXr83SnEA __-siqloGEeS2WoXr83SnEA __-sjFFoGEeS2WoXr83SnEA __-sjF1oGEeS2WoXr83SnEA __-sjPFoGEeS2WoXr83SnEA __-sjUloGEeS2WoXr83SnEA __-sjU1oGEeS2WoXr83SnEA __-sjkFoGEeS2WoXr83SnEA __-sjploGEeS2WoXr83SnEA __-sjp1oGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__-sgv1oGEeS2WoXr83SnEA" name="*" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="__-skIVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgwFoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+ <ownedParameter xmi:id="__-sgwVoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgwloGEeS2WoXr83SnEA" name="+" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgw1oGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+ <ownedParameter xmi:id="__-sgxFoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgxVoGEeS2WoXr83SnEA" name="-" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="__-skIFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgxloGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgx1oGEeS2WoXr83SnEA" name="-" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgyFoGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+ <ownedParameter xmi:id="__-sgyVoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgyloGEeS2WoXr83SnEA" name="/" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="__-skIVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sgy1oGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.
Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="__-sgzFoGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgzVoGEeS2WoXr83SnEA" name="abs" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="__-sgzloGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sgz1oGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="__-sg0FoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__-sg0VoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg0loGEeS2WoXr83SnEA" name="div" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+ <ownedComment xmi:id="__-sg01oGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+ <ownedParameter xmi:id="__-sg1FoGEeS2WoXr83SnEA" name="i" type="__-sgvloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg1VoGEeS2WoXr83SnEA" name="max" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="__-sg1loGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+ <ownedParameter xmi:id="__-sg11oGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg2FoGEeS2WoXr83SnEA" name="min" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="__-sg2VoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+ <ownedParameter xmi:id="__-sg2loGEeS2WoXr83SnEA" name="i" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg21oGEeS2WoXr83SnEA" name="mod" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+ <ownedComment xmi:id="__-sg3FoGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+ <ownedParameter xmi:id="__-sg3VoGEeS2WoXr83SnEA" name="i" type="__-sgvloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg3loGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__-sg31oGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-sg4FoGEeS2WoXr83SnEA" name="Real" superClass="__-sinFoGEeS2WoXr83SnEA __-si6VoGEeS2WoXr83SnEA"
+ typedElement="__-sgyloGEeS2WoXr83SnEA __-sg4VoGEeS2WoXr83SnEA __-sg5FoGEeS2WoXr83SnEA __-sg51oGEeS2WoXr83SnEA __-sg6VoGEeS2WoXr83SnEA __-sg7FoGEeS2WoXr83SnEA __-shAVoGEeS2WoXr83SnEA __-shCFoGEeS2WoXr83SnEA __-shC1oGEeS2WoXr83SnEA __-shYVoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__-sg4VoGEeS2WoXr83SnEA" name="*" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="__-skIVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg4loGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+ <ownedParameter xmi:id="__-sg41oGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg5FoGEeS2WoXr83SnEA" name="+" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg5VoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+ <ownedParameter xmi:id="__-sg5loGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg51oGEeS2WoXr83SnEA" name="-" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="__-skIFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg6FoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg6VoGEeS2WoXr83SnEA" name="-" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg6loGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+ <ownedParameter xmi:id="__-sg61oGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg7FoGEeS2WoXr83SnEA" name="/" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="__-skIVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg7VoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="__-sg7loGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg71oGEeS2WoXr83SnEA" name="<" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg8FoGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+ <ownedParameter xmi:id="__-sg8VoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg8loGEeS2WoXr83SnEA" name="<=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg81oGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+ <ownedParameter xmi:id="__-sg9FoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg9VoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg9loGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__-sg91oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg-FoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg-VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__-sg-loGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg-1oGEeS2WoXr83SnEA" name=">" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg_FoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+ <ownedParameter xmi:id="__-sg_VoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sg_loGEeS2WoXr83SnEA" name=">=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sg_1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+ <ownedParameter xmi:id="__-shAFoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shAVoGEeS2WoXr83SnEA" name="abs" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="__-shAloGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shA1oGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="__-shBFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__-shBVoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shBloGEeS2WoXr83SnEA" name="floor" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+ <ownedComment xmi:id="__-shB1oGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shCFoGEeS2WoXr83SnEA" name="max" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="__-shCVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+ <ownedParameter xmi:id="__-shCloGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shC1oGEeS2WoXr83SnEA" name="min" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="__-shDFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+ <ownedParameter xmi:id="__-shDVoGEeS2WoXr83SnEA" name="r" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shDloGEeS2WoXr83SnEA" name="round" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+ <ownedComment xmi:id="__-shD1oGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shEFoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__-shEVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-shEloGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="__-sfIFoGEeS2WoXr83SnEA __-sf41oGEeS2WoXr83SnEA __-sgNFoGEeS2WoXr83SnEA"
+ superClass="__-sinFoGEeS2WoXr83SnEA __-si6VoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__-shE1oGEeS2WoXr83SnEA" name="+" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shFFoGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="__-shFVoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shFloGEeS2WoXr83SnEA" name="<" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shF1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__-shGFoGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shGVoGEeS2WoXr83SnEA" name="<=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shGloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__-shG1oGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shHFoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-shHVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shHloGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-shH1oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shIFoGEeS2WoXr83SnEA" name=">" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shIVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__-shIloGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shI1oGEeS2WoXr83SnEA" name=">=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shJFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__-shJVoGEeS2WoXr83SnEA" name="s" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shJloGEeS2WoXr83SnEA" name="at" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-shJ1oGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+ <ownedParameter xmi:id="__-shKFoGEeS2WoXr83SnEA" name="i" type="__-sgvloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shKVoGEeS2WoXr83SnEA" name="characters" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+ <ownedComment xmi:id="__-shKloGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shK1oGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+ <ownedComment xmi:id="__-shLFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__-shLVoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shLloGEeS2WoXr83SnEA" name="concat" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+ <ownedComment xmi:id="__-shL1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="__-shMFoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shMVoGEeS2WoXr83SnEA" name="endsWith" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+ <ownedComment xmi:id="__-shMloGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.
Every string ends with the empty string."/>
+ <ownedParameter xmi:id="__-shM1oGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shNFoGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+ <ownedComment xmi:id="__-shNVoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+ <ownedParameter xmi:id="__-shNloGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shN1oGEeS2WoXr83SnEA" name="indexOf" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+ <ownedComment xmi:id="__-shOFoGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="__-shOVoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shOloGEeS2WoXr83SnEA" name="lastIndexOf" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+ <ownedComment xmi:id="__-shO1oGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="__-shPFoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shPVoGEeS2WoXr83SnEA" name="matches" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+ <ownedComment xmi:id="__-shPloGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+ <ownedParameter xmi:id="__-shP1oGEeS2WoXr83SnEA" name="regex" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shQFoGEeS2WoXr83SnEA" name="replaceAll" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-shQVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+ <ownedParameter xmi:id="__-shQloGEeS2WoXr83SnEA" name="regex" type="__-shEloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-shQ1oGEeS2WoXr83SnEA" name="replacement" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shRFoGEeS2WoXr83SnEA" name="replaceFirst" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-shRVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+ <ownedParameter xmi:id="__-shRloGEeS2WoXr83SnEA" name="regex" type="__-shEloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-shR1oGEeS2WoXr83SnEA" name="replacement" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shSFoGEeS2WoXr83SnEA" name="size" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+ <ownedComment xmi:id="__-shSVoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shSloGEeS2WoXr83SnEA" name="startsWith" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+ <ownedComment xmi:id="__-shS1oGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.
Every string starts with the empty string."/>
+ <ownedParameter xmi:id="__-shTFoGEeS2WoXr83SnEA" name="s" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shTVoGEeS2WoXr83SnEA" name="substituteAll" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+ <ownedComment xmi:id="__-shTloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+ <ownedParameter xmi:id="__-shT1oGEeS2WoXr83SnEA" name="oldSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-shUFoGEeS2WoXr83SnEA" name="newSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shUVoGEeS2WoXr83SnEA" name="substituteFirst" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+ <ownedComment xmi:id="__-shUloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.
Returns invalid if there is no first occurrence."/>
+ <ownedParameter xmi:id="__-shU1oGEeS2WoXr83SnEA" name="oldSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-shVFoGEeS2WoXr83SnEA" name="newSubstring" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shVVoGEeS2WoXr83SnEA" name="substring" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-shVloGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+ <ownedParameter xmi:id="__-shV1oGEeS2WoXr83SnEA" name="lower" type="__-sgvloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-shWFoGEeS2WoXr83SnEA" name="upper" type="__-sgvloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shWVoGEeS2WoXr83SnEA" name="toBoolean" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-shWloGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shW1oGEeS2WoXr83SnEA" name="toInteger" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-shXFoGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shXVoGEeS2WoXr83SnEA" name="toLower" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="__-shXloGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shX1oGEeS2WoXr83SnEA" name="toLowerCase" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="__-shYFoGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shYVoGEeS2WoXr83SnEA" name="toReal" type="__-sg4FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-shYloGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shY1oGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__-shZFoGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shZVoGEeS2WoXr83SnEA" name="toUpper" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="__-shZloGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shZ1oGEeS2WoXr83SnEA" name="toUpperCase" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="__-shaFoGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shaVoGEeS2WoXr83SnEA" name="tokenize" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__-shaloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.
The delimiters are omitted from the return."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sha1oGEeS2WoXr83SnEA" name="tokenize" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__-shbFoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+ <ownedParameter xmi:id="__-shbVoGEeS2WoXr83SnEA" name="delimiters" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shbloGEeS2WoXr83SnEA" name="tokenize" type="__-sgMloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__-shb1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is
true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+ <ownedParameter xmi:id="__-shcFoGEeS2WoXr83SnEA" name="delimiters" type="__-shEloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-shcVoGEeS2WoXr83SnEA" name="returnDelimiters" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shcloGEeS2WoXr83SnEA" name="trim" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+ <ownedComment xmi:id="__-shc1oGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sguFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sg3loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shEFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shE1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shFVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shJloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shLloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shMFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shM1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shNloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shOVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shPFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shP1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shQFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shQloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shQ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shRFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shRloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shR1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shTFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shTVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shT1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shUFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shUVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shU1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shVFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shVVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shXVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shX1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shY1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shZVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shZ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shbVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-shcFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-shcloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__-sil1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-simloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-si2FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__-sjDFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-seqVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-serFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="ClassMM_IN.xml#__-sesVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skOVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skPVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skRloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="AbstractToConcrete.xml#__-skSloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skTloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="AbstractToConcrete.xml#__-skT1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__-shdFoGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="__-sgvloGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__-shdVoGEeS2WoXr83SnEA" name="oclAsType" type="__-sheVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+ <ownedComment xmi:id="__-shdloGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to
Real or Integer, but the e[unlimited] value may not.
Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+ <ownedTemplateSignature xmi:id="__-shd1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sheFoGEeS2WoXr83SnEA" parameteredElement="__-sheVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sheVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sheFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfpFoGEeS2WoXr83SnEA" typedElement="__-shdVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sheloGEeS2WoXr83SnEA" name="type" type="__-sfoloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__-she1oGEeS2WoXr83SnEA" name="Bag" superClass="__-sfM1oGEeS2WoXr83SnEA" typedElement="__-shhFoGEeS2WoXr83SnEA __-shh1oGEeS2WoXr83SnEA __-shj1oGEeS2WoXr83SnEA __-shkloGEeS2WoXr83SnEA __-shsFoGEeS2WoXr83SnEA __-shtFoGEeS2WoXr83SnEA"
+ elementType="__-shfloGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-shfFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shfVoGEeS2WoXr83SnEA" parameteredElement="__-shfloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shfloGEeS2WoXr83SnEA" name="T" templateParameter="__-shfVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfNVoGEeS2WoXr83SnEA __-sf5loGEeS2WoXr83SnEA __-sgN1oGEeS2WoXr83SnEA __-sgVVoGEeS2WoXr83SnEA __-sgcFoGEeS2WoXr83SnEA"
+ typedElement="__-shkVoGEeS2WoXr83SnEA __-sholoGEeS2WoXr83SnEA __-shqVoGEeS2WoXr83SnEA __-shr1oGEeS2WoXr83SnEA __-shs1oGEeS2WoXr83SnEA __-sht1oGEeS2WoXr83SnEA __-shu1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-se_FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-se_1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfAloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfBVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfCFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfC1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfDloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfEVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfFFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfF1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfGloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-seuVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-sevFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#__-se-1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-se_loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfAVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfBFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfB1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfCloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfDVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfEFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfE1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfFloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfGVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-seuFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-seu1oGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__-shf1oGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-shgFoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shgVoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shgloGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+ <ownedParameter xmi:id="__-shg1oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shhFoGEeS2WoXr83SnEA" name="excluding" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__-shhVoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+ <ownedParameter xmi:id="__-shhloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shh1oGEeS2WoXr83SnEA" name="excludingAll" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__-shiFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__-shiVoGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shiloGEeS2WoXr83SnEA" name="flatten" type="__-sfAFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__-shi1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].
If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__-shjFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shjVoGEeS2WoXr83SnEA" parameteredElement="__-shjloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shjloGEeS2WoXr83SnEA" name="T2" templateParameter="__-shjVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfAloGEeS2WoXr83SnEA __-sfLFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shj1oGEeS2WoXr83SnEA" name="including" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__-shkFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__-shkVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shkloGEeS2WoXr83SnEA" name="includingAll" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__-shk1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__-shlFoGEeS2WoXr83SnEA" name="objects" type="__-sfM1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shlVoGEeS2WoXr83SnEA" name="selectByKind" type="__-sfA1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__-shlloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shl1oGEeS2WoXr83SnEA" parameteredElement="__-shmFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shmFoGEeS2WoXr83SnEA" name="TT" templateParameter="__-shl1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfBVoGEeS2WoXr83SnEA __-sfL1oGEeS2WoXr83SnEA __-sfp1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-shmVoGEeS2WoXr83SnEA" name="type" type="__-sfpVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shmloGEeS2WoXr83SnEA" name="selectByType" type="__-sfBloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__-shm1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shnFoGEeS2WoXr83SnEA" parameteredElement="__-shnVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shnVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-shnFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfCFoGEeS2WoXr83SnEA __-sfMloGEeS2WoXr83SnEA __-sfqloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-shnloGEeS2WoXr83SnEA" name="type" type="__-sfqFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shn1oGEeS2WoXr83SnEA" name="closure" type="__-sgU1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__-shoFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__-shoVoGEeS2WoXr83SnEA" name="lambda" type="__-se4VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sholoGEeS2WoXr83SnEA" name="i" type="__-shfloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sho1oGEeS2WoXr83SnEA" name="collectNested" type="__-se-loGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__-shpFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="__-shpVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shploGEeS2WoXr83SnEA" parameteredElement="__-shp1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shp1oGEeS2WoXr83SnEA" name="V" templateParameter="__-shploGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-se_FoGEeS2WoXr83SnEA __-sfJloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-shqFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se3loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-shqVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shqloGEeS2WoXr83SnEA" name="collect" type="__-se_VoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__-shq1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shrFoGEeS2WoXr83SnEA" parameteredElement="__-shrVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shrVoGEeS2WoXr83SnEA" name="V" templateParameter="__-shrFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-se_1oGEeS2WoXr83SnEA __-sfKVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-shrloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se31oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-shr1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shsFoGEeS2WoXr83SnEA" name="reject" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__-shsVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].

oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+ <ownedParameter xmi:id="__-shsloGEeS2WoXr83SnEA" name="lambda" type="__-se3VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-shs1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shtFoGEeS2WoXr83SnEA" name="select" type="__-she1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__-shtVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].

oclCode[self->select(iterator | body) =
self->iterate(iterator; result : Bag(T) = Bag{} |
if body then result->including(iterator)
else result
endif)]"/>
+ <ownedParameter xmi:id="__-shtloGEeS2WoXr83SnEA" name="lambda" type="__-se3VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sht1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-shuFoGEeS2WoXr83SnEA" name="sortedBy" type="__-sgNVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__-shuVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__-shuloGEeS2WoXr83SnEA" name="lambda" type="__-se4FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-shu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shfloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-shvFoGEeS2WoXr83SnEA" name="Class" superClass="__-sibloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-shvVoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="__-sfDloGEeS2WoXr83SnEA __-sfU1oGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sh4loGEeS2WoXr83SnEA __-sh5VoGEeS2WoXr83SnEA __-sh9loGEeS2WoXr83SnEA __-sh-VoGEeS2WoXr83SnEA __-sh-1oGEeS2WoXr83SnEA __-sh_loGEeS2WoXr83SnEA __-siIFoGEeS2WoXr83SnEA __-siUloGEeS2WoXr83SnEA __-siVloGEeS2WoXr83SnEA"
+ elementType="__-shwFoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-shvloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-shv1oGEeS2WoXr83SnEA" parameteredElement="__-shwFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-shwFoGEeS2WoXr83SnEA" name="T" templateParameter="__-shv1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfC1oGEeS2WoXr83SnEA __-sfUFoGEeS2WoXr83SnEA __-sf6VoGEeS2WoXr83SnEA __-sgGVoGEeS2WoXr83SnEA __-sgOloGEeS2WoXr83SnEA __-sgWFoGEeS2WoXr83SnEA __-sgc1oGEeS2WoXr83SnEA"
+ typedElement="__-se-FoGEeS2WoXr83SnEA __-shwloGEeS2WoXr83SnEA __-sh-FoGEeS2WoXr83SnEA __-siBFoGEeS2WoXr83SnEA __-siBloGEeS2WoXr83SnEA __-siHFoGEeS2WoXr83SnEA __-siIVoGEeS2WoXr83SnEA __-siJFoGEeS2WoXr83SnEA __-siK1oGEeS2WoXr83SnEA __-siMloGEeS2WoXr83SnEA __-siNVoGEeS2WoXr83SnEA __-siNloGEeS2WoXr83SnEA __-siOloGEeS2WoXr83SnEA __-siPVoGEeS2WoXr83SnEA __-siPloGEeS2WoXr83SnEA __-siQloGEeS2WoXr83SnEA __-siRloGEeS2WoXr83SnEA __-siTVoGEeS2WoXr83SnEA __-siUVoGEeS2WoXr83SnEA __-siVVoGEeS2WoXr83SnEA __-siWVoGEeS2WoXr83SnEA __-siXVoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__-shwVoGEeS2WoXr83SnEA" name="Collection" type="__-sfDFoGEeS2WoXr83SnEA" implicit="true" opposite="__-shwloGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ <templateParameterSubstitution href="#__-sfHVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfIFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfI1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfJloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfKVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfLFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfL1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfMloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfNVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfOFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfO1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfPloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfa1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfbloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfcVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfdFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfd1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfeloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sffVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfgFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfg1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfhloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfiVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfjFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfkloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sflVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfmFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfm1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfnloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sfoVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-sev1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-sewloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-sexVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-seyFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#__-sfHFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfH1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfIloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfJVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfKFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfK1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfLloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfMVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfNFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfN1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfOloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfPVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfQFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfQ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfRloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfSVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfTFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfT1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfUloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfVVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfWFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfW1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfXloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfYVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfZFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfZ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfaloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfbVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfcFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfc1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfdloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfeVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sffFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sff1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfgloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfhVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfiFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfi1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfjloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfkVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sflFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfl1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfmloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfnVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sfoFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-sevloGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-sewVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-sexFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-sex1oGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="__-shwloGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+ opposite="__-shwVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shw1oGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-shxFoGEeS2WoXr83SnEA" isStatic="true" name="lower" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+ <ownedComment xmi:id="__-shxVoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__-shxloGEeS2WoXr83SnEA" isStatic="true" name="upper" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+ <ownedComment xmi:id="__-shx1oGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="__-shyFoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shyVoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+ <ownedParameter xmi:id="__-shyloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shy1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-shzFoGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,
in the case of an ordered collection type."/>
+ <ownedParameter xmi:id="__-shzVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-shzloGEeS2WoXr83SnEA" name="asBag" type="__-sfCVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+ <ownedComment xmi:id="__-shz1oGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh0FoGEeS2WoXr83SnEA" name="asOrderedSet" type="__-sgF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+ <ownedComment xmi:id="__-sh0VoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,
in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh0loGEeS2WoXr83SnEA" name="asSequence" type="__-sgOFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+ <ownedComment xmi:id="__-sh01oGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh1FoGEeS2WoXr83SnEA" name="asSet" type="__-sgVloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+ <ownedComment xmi:id="__-sh1VoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh1loGEeS2WoXr83SnEA" name="count" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+ <ownedComment xmi:id="__-sh11oGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+ <ownedParameter xmi:id="__-sh2FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh2VoGEeS2WoXr83SnEA" name="excludes" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+ <ownedComment xmi:id="__-sh2loGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__-sh21oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh3FoGEeS2WoXr83SnEA" name="excludesAll" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+ <ownedComment xmi:id="__-sh3VoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="__-sh3loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sh31oGEeS2WoXr83SnEA" parameteredElement="__-sh4FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sh4FoGEeS2WoXr83SnEA" name="T2" templateParameter="__-sh31oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfPloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sh4VoGEeS2WoXr83SnEA" name="c2" type="__-sfPFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh4loGEeS2WoXr83SnEA" name="excluding" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__-sh41oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+ <ownedParameter xmi:id="__-sh5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh5VoGEeS2WoXr83SnEA" name="excludingAll" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__-sh5loGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__-sh51oGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh6FoGEeS2WoXr83SnEA" name="flatten" type="__-sfP1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__-sh6VoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].
If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__-sh6loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sh61oGEeS2WoXr83SnEA" parameteredElement="__-sh7FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sh7FoGEeS2WoXr83SnEA" name="T2" templateParameter="__-sh61oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfQVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh7VoGEeS2WoXr83SnEA" name="includes" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+ <ownedComment xmi:id="__-sh7loGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__-sh71oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh8FoGEeS2WoXr83SnEA" name="includesAll" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+ <ownedComment xmi:id="__-sh8VoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="__-sh8loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sh81oGEeS2WoXr83SnEA" parameteredElement="__-sh9FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sh9FoGEeS2WoXr83SnEA" name="T2" templateParameter="__-sh81oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfRFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sh9VoGEeS2WoXr83SnEA" name="c2" type="__-sfQloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh9loGEeS2WoXr83SnEA" name="including" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__-sh91oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__-sh-FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh-VoGEeS2WoXr83SnEA" name="includingAll" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__-sh-loGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__-sh-1oGEeS2WoXr83SnEA" name="objects" type="__-shvVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh_FoGEeS2WoXr83SnEA" name="intersection" type="__-sfCVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__-sh_VoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+ <ownedParameter xmi:id="__-sh_loGEeS2WoXr83SnEA" name="c" type="__-shvVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sh_1oGEeS2WoXr83SnEA" name="intersection" type="__-sgVloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__-siAFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+ <ownedParameter xmi:id="__-siAVoGEeS2WoXr83SnEA" name="u" type="__-sgcVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siAloGEeS2WoXr83SnEA" name="isEmpty" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+ <ownedComment xmi:id="__-siA1oGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?

Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siBFoGEeS2WoXr83SnEA" name="max" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+ <ownedComment xmi:id="__-siBVoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].
Elements must be of a type supporting the max operation.
The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siBloGEeS2WoXr83SnEA" name="min" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+ <ownedComment xmi:id="__-siB1oGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].
Elements must be of a type supporting the min operation.
The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siCFoGEeS2WoXr83SnEA" name="notEmpty" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+ <ownedComment xmi:id="__-siCVoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?

oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siCloGEeS2WoXr83SnEA" name="product" type="__-sgUFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+ <ownedComment xmi:id="__-siC1oGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+ <ownedTemplateSignature xmi:id="__-siDFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siDVoGEeS2WoXr83SnEA" parameteredElement="__-siDloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siDloGEeS2WoXr83SnEA" name="T2" templateParameter="__-siDVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfR1oGEeS2WoXr83SnEA" typedElement="__-se-VoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siD1oGEeS2WoXr83SnEA" name="c2" type="__-sfRVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siEFoGEeS2WoXr83SnEA" name="selectByKind" type="__-sfSFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__-siEVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siEloGEeS2WoXr83SnEA" parameteredElement="__-siE1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siE1oGEeS2WoXr83SnEA" name="TT" templateParameter="__-siEloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfSloGEeS2WoXr83SnEA __-sfrVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siFFoGEeS2WoXr83SnEA" name="type" type="__-sfq1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siFVoGEeS2WoXr83SnEA" name="selectByType" type="__-sfS1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__-siFloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siF1oGEeS2WoXr83SnEA" parameteredElement="__-siGFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siGFoGEeS2WoXr83SnEA" name="TT" templateParameter="__-siF1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfTVoGEeS2WoXr83SnEA __-sfsFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siGVoGEeS2WoXr83SnEA" name="type" type="__-sfrloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siGloGEeS2WoXr83SnEA" name="size" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+ <ownedComment xmi:id="__-siG1oGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siHFoGEeS2WoXr83SnEA" name="sum" type="__-shwFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+ <ownedComment xmi:id="__-siHVoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].
Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.
The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).
UnlimitedNatural, Integer and Real fulfill this condition.

If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,
which may result in unpredictable results during evaluation.
If an implementation is able to detect a lack of associativity or commutativity,
the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siHloGEeS2WoXr83SnEA" name="union" type="__-sfCVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="__-siH1oGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+ <ownedParameter xmi:id="__-siIFoGEeS2WoXr83SnEA" name="c" type="__-shvVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siIVoGEeS2WoXr83SnEA" name="any" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+ <ownedComment xmi:id="__-siIloGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].
If there is more than one element for which body is oclText[true], one of them is returned.
There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+ <ownedParameter xmi:id="__-siI1oGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siJFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siJVoGEeS2WoXr83SnEA" name="collectNested" type="__-sfNloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__-siJloGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+ <ownedTemplateSignature xmi:id="__-siJ1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siKFoGEeS2WoXr83SnEA" parameteredElement="__-siKVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siKVoGEeS2WoXr83SnEA" name="V" templateParameter="__-siKFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfOFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siKloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se41oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siK1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siLFoGEeS2WoXr83SnEA" name="collect" type="__-sfOVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedComment xmi:id="__-siLVoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.
The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.
collectNested is defined individually for each subclass of CollectionType."/>
+ <ownedTemplateSignature xmi:id="__-siLloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siL1oGEeS2WoXr83SnEA" parameteredElement="__-siMFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siMFoGEeS2WoXr83SnEA" name="V" templateParameter="__-siL1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfO1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siMVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se5FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siMloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siM1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedParameter xmi:id="__-siNFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siNVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siNloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siN1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedComment xmi:id="__-siOFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+ <ownedParameter xmi:id="__-siOVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siOloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siO1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedParameter xmi:id="__-siPFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siPVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siPloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siP1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedComment xmi:id="__-siQFoGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="__-siQVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siQloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siQ1oGEeS2WoXr83SnEA" name="isUnique" type="__-sgoFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+ <ownedComment xmi:id="__-siRFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="__-siRVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se5loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siRloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siR1oGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="__-siSloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+ <ownedTemplateSignature xmi:id="__-siSFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siSVoGEeS2WoXr83SnEA" parameteredElement="__-siSloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-siSloGEeS2WoXr83SnEA" name="Tacc" templateParameter="__-siSVoGEeS2WoXr83SnEA"
+ typedElement="__-siR1oGEeS2WoXr83SnEA __-siTFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siS1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se5VoGEeS2WoXr83SnEA"/>
+ <ownedAccumulator xmi:id="__-siTFoGEeS2WoXr83SnEA" name="acc" isRequired="false" type="__-siSloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siTVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siTloGEeS2WoXr83SnEA" name="one" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+ <ownedComment xmi:id="__-siT1oGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__-siUFoGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siUVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siUloGEeS2WoXr83SnEA" name="reject" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__-siU1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__-siVFoGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siVVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siVloGEeS2WoXr83SnEA" name="select" type="__-shvVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__-siV1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__-siWFoGEeS2WoXr83SnEA" name="lambda" type="__-se4loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siWVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-siWloGEeS2WoXr83SnEA" name="sortedBy" type="__-sgOFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__-siW1oGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__-siXFoGEeS2WoXr83SnEA" name="lambda" type="__-se5loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-siXVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-shwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-siXloGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="__-sfEVoGEeS2WoXr83SnEA __-sfWVoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-siX1oGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+ <ownedAttribute xmi:id="__-siYFoGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="__-sgGloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+ opposite="__-siZloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-siYVoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="__-siYloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+ <ownedComment xmi:id="__-siY1oGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-siZFoGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="__-sfVloGEeS2WoXr83SnEA __-sf7FoGEeS2WoXr83SnEA __-sgHFoGEeS2WoXr83SnEA __-sgdloGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-siZVoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+ <ownedAttribute xmi:id="__-siZloGEeS2WoXr83SnEA" name="Enumeration" type="__-sfD1oGEeS2WoXr83SnEA" implicit="true" opposite="__-siYFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__-siZ1oGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="__-sfFFoGEeS2WoXr83SnEA __-sfXFoGEeS2WoXr83SnEA"
+ superClass="__-shvFoGEeS2WoXr83SnEA __-si9loGEeS2WoXr83SnEA" instanceType="__-sialoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-siaFoGEeS2WoXr83SnEA" templateBinding="__-sfo1oGEeS2WoXr83SnEA __-sfploGEeS2WoXr83SnEA __-sfqVoGEeS2WoXr83SnEA __-sfrFoGEeS2WoXr83SnEA __-sfr1oGEeS2WoXr83SnEA __-sfsloGEeS2WoXr83SnEA __-sftVoGEeS2WoXr83SnEA __-sfuFoGEeS2WoXr83SnEA __-sfu1oGEeS2WoXr83SnEA __-sfvloGEeS2WoXr83SnEA __-sfwVoGEeS2WoXr83SnEA __-sfxFoGEeS2WoXr83SnEA __-sfx1oGEeS2WoXr83SnEA __-sfyloGEeS2WoXr83SnEA __-sfzVoGEeS2WoXr83SnEA __-sf0FoGEeS2WoXr83SnEA __-sf01oGEeS2WoXr83SnEA __-sf1loGEeS2WoXr83SnEA __-sf2VoGEeS2WoXr83SnEA __-sf3FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-siaVoGEeS2WoXr83SnEA" parameteredElement="__-sialoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfpFoGEeS2WoXr83SnEA __-sfp1oGEeS2WoXr83SnEA __-sfqloGEeS2WoXr83SnEA __-sfrVoGEeS2WoXr83SnEA __-sfsFoGEeS2WoXr83SnEA __-sfs1oGEeS2WoXr83SnEA __-sftloGEeS2WoXr83SnEA __-sfuVoGEeS2WoXr83SnEA __-sfvFoGEeS2WoXr83SnEA __-sfv1oGEeS2WoXr83SnEA __-sfwloGEeS2WoXr83SnEA __-sfxVoGEeS2WoXr83SnEA __-sfyFoGEeS2WoXr83SnEA __-sfy1oGEeS2WoXr83SnEA __-sfzloGEeS2WoXr83SnEA __-sf0VoGEeS2WoXr83SnEA __-sf1FoGEeS2WoXr83SnEA __-sf11oGEeS2WoXr83SnEA __-sf2loGEeS2WoXr83SnEA __-sf3VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sialoGEeS2WoXr83SnEA" name="T" templateParameter="__-siaVoGEeS2WoXr83SnEA"
+ typedElement="__-sibFoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__-sia1oGEeS2WoXr83SnEA" name="Metaclass" type="__-sfEloGEeS2WoXr83SnEA" implicit="true" opposite="__-sibFoGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="__-sibFoGEeS2WoXr83SnEA" name="instanceType" type="__-sialoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+ opposite="__-sia1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sibVoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+ </ownedAttribute>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="__-sibloGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="__-sfX1oGEeS2WoXr83SnEA __-sgeVoGEeS2WoXr83SnEA"
+ typedElement="__-shhloGEeS2WoXr83SnEA __-sh2FoGEeS2WoXr83SnEA __-sh21oGEeS2WoXr83SnEA __-sh5FoGEeS2WoXr83SnEA __-sh71oGEeS2WoXr83SnEA __-si5FoGEeS2WoXr83SnEA __-sjGVoGEeS2WoXr83SnEA __-sjL1oGEeS2WoXr83SnEA __-sjgloGEeS2WoXr83SnEA __-sj01oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sib1oGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.
Conceptually, OclAny behaves as a supertype for all the types.
Features of OclAny are available on each object in all OCL expressions.
OclAny is itself an instance of the metatype AnyType.

All classes in a UML model inherit all operations defined on OclAny.
To avoid name conflicts between properties in the model and the properties inherited from OclAny,
all names on the properties of OclAny start with ‘ocl.’
Although theoretically there may still be name conflicts, they can be avoided.
One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.

Operations of OclAny, where the instance of OclAny is called object."/>
+ <ownedOperation xmi:id="__-sicFoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sicVoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+ <ownedParameter xmi:id="__-sicloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sic1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sidFoGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+ <ownedParameter xmi:id="__-sidVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sidloGEeS2WoXr83SnEA" name="oclAsSet" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+ <ownedComment xmi:id="__-sid1oGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sieFoGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="__-sifFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedComment xmi:id="__-sieVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

In the case of feature redefinition, casting an object to a supertype of its actual type
does not access the supertype’s definition of the feature;
according to the semantics of redefinition, the redefined feature simply does not exist for the object.
However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+ <ownedTemplateSignature xmi:id="__-sieloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sie1oGEeS2WoXr83SnEA" parameteredElement="__-sifFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sifFoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sie1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfs1oGEeS2WoXr83SnEA" typedElement="__-sieFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sifVoGEeS2WoXr83SnEA" name="type" type="__-sfsVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sifloGEeS2WoXr83SnEA" name="oclIsInState" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+ <ownedComment xmi:id="__-sif1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+ <ownedParameter xmi:id="__-sigFoGEeS2WoXr83SnEA" name="statespec" type="__-si6FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sigVoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true">
+ <ownedComment xmi:id="__-sigloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sig1oGEeS2WoXr83SnEA" name="oclIsKindOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedComment xmi:id="__-sihFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.
That is, oclText[self] is of type t or a subtype of t."/>
+ <ownedTemplateSignature xmi:id="__-sihVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sihloGEeS2WoXr83SnEA" parameteredElement="__-sih1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sih1oGEeS2WoXr83SnEA" name="T" templateParameter="__-sihloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sftloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siiFoGEeS2WoXr83SnEA" name="type" type="__-sftFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siiVoGEeS2WoXr83SnEA" name="oclIsNew" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__-siiloGEeS2WoXr83SnEA" body="Can only be used in a postcondition.
Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn’t exist at precondition time)."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sii1oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedComment xmi:id="__-sijFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+ <ownedTemplateSignature xmi:id="__-sijVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sijloGEeS2WoXr83SnEA" parameteredElement="__-sij1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sij1oGEeS2WoXr83SnEA" name="T" templateParameter="__-sijloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfuVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sikFoGEeS2WoXr83SnEA" name="type" type="__-sft1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sikVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true">
+ <ownedComment xmi:id="__-sikloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sik1oGEeS2WoXr83SnEA" name="oclLog" type="__-si5loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="__-silFoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-silVoGEeS2WoXr83SnEA" name="oclLog" type="__-si5loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="__-silloGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+ <ownedParameter xmi:id="__-sil1oGEeS2WoXr83SnEA" name="message" type="__-shEloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-simFoGEeS2WoXr83SnEA" name="oclType" type="__-sfxloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+ <ownedComment xmi:id="__-simVoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-simloGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__-sim1oGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sinFoGEeS2WoXr83SnEA" name="OclComparable" superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sinVoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived
compareTo implementation may be sorted."/>
+ <ownedOperation xmi:id="__-sinloGEeS2WoXr83SnEA" name="<" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sin1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+ <ownedParameter xmi:id="__-sioFoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sioVoGEeS2WoXr83SnEA" name="<=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sioloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="__-sio1oGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sipFoGEeS2WoXr83SnEA" name=">" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sipVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+ <ownedParameter xmi:id="__-siploGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sip1oGEeS2WoXr83SnEA" name=">=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+ precedence="__-skI1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-siqFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="__-siqVoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siqloGEeS2WoXr83SnEA" name="compareTo" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+ <ownedComment xmi:id="__-siq1oGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.

The compareTo operation should be commutative."/>
+ <ownedParameter xmi:id="__-sirFoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-sirVoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="__-sfYloGEeS2WoXr83SnEA __-sgW1oGEeS2WoXr83SnEA __-sgfFoGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sisVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sirloGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined
for OclElement are therefore applicable to all user-defined types."/>
+ <ownedOperation xmi:id="__-sir1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+ <ownedComment xmi:id="__-sisFoGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sisVoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="__-sirVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+ <ownedComment xmi:id="__-sisloGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sis1oGEeS2WoXr83SnEA" name="oclContents" type="__-sgWVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+ <ownedComment xmi:id="__-sitFoGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="__-sitVoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="__-sfxVoGEeS2WoXr83SnEA"
+ superClass="__-si-1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sitloGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.
It has one single instance, identified as oclText[invalid].
Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().
OclInvalid is itself an instance of the metatype InvalidType."/>
+ <ownedOperation xmi:id="__-sit1oGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-siuFoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="__-siuVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siuloGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-siu1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="__-sivFoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sivVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+ <ownedComment xmi:id="__-sivloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siv1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="__-skJVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-siwFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siwVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isValidating="true" precedence="__-skKFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-siwloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siw1oGEeS2WoXr83SnEA" name="oclAsSet" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+ <ownedOperation xmi:id="__-sixFoGEeS2WoXr83SnEA" name="oclAsType" type="__-six1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedTemplateSignature xmi:id="__-sixVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sixloGEeS2WoXr83SnEA" parameteredElement="__-six1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-six1oGEeS2WoXr83SnEA" name="TT" templateParameter="__-sixloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfvFoGEeS2WoXr83SnEA" typedElement="__-sixFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-siyFoGEeS2WoXr83SnEA" name="type" type="__-sfuloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siyVoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__-siyloGEeS2WoXr83SnEA" name="oclIsKindOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedTemplateSignature xmi:id="__-siy1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sizFoGEeS2WoXr83SnEA" parameteredElement="__-sizVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sizVoGEeS2WoXr83SnEA" name="T" templateParameter="__-sizFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfv1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sizloGEeS2WoXr83SnEA" name="type" type="__-sfvVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-siz1oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedTemplateSignature xmi:id="__-si0FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-si0VoGEeS2WoXr83SnEA" parameteredElement="__-si0loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-si0loGEeS2WoXr83SnEA" name="T" templateParameter="__-si0VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfwloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-si01oGEeS2WoXr83SnEA" name="type" type="__-sfwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si1FoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__-si1VoGEeS2WoXr83SnEA" name="oclType" type="__-sfxloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+ <ownedOperation xmi:id="__-si1loGEeS2WoXr83SnEA" name="or" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="__-skJloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-si11oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si2FoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__-si2VoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si2loGEeS2WoXr83SnEA" name="OclLambda" superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si21oGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda
therefore apply to all lambda expressions."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si3FoGEeS2WoXr83SnEA" name="OclMessage" superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si3VoGEeS2WoXr83SnEA" body="OclMessage
This sub clause contains the definition of the standard type OclMessage.
As defined in this sub clause, each ocl message type is actually a template type with one parameter.
‘T’ denotes the parameter.
A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType.
Every OclMessage is fully determined by either the operation, or signal given as parameter.
Note that there is conceptually an undefined (infinite) number of these types,
as each is determined by a different operation or signal.
These types are unnamed. Every type has as attributes the name of the operation or signal,
and either all formal parameters of the operation, or all attributes of the signal.
OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+ <ownedOperation xmi:id="__-si3loGEeS2WoXr83SnEA" name="hasReturned" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__-si31oGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.
This implies the fact that the message has been sent. False in all other cases."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si4FoGEeS2WoXr83SnEA" name="isOperationCall" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__-si4VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si4loGEeS2WoXr83SnEA" name="isSignalSent" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__-si41oGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si5FoGEeS2WoXr83SnEA" name="result" type="__-sibloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__-si5VoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,
and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="__-si5loGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="__-sfZVoGEeS2WoXr83SnEA __-sfyFoGEeS2WoXr83SnEA __-sgXloGEeS2WoXr83SnEA __-sgf1oGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sgo1oGEeS2WoXr83SnEA __-sgploGEeS2WoXr83SnEA __-sgwVoGEeS2WoXr83SnEA __-sgxFoGEeS2WoXr83SnEA __-sgyVoGEeS2WoXr83SnEA __-sgzFoGEeS2WoXr83SnEA __-sg0VoGEeS2WoXr83SnEA __-sg11oGEeS2WoXr83SnEA __-sg2loGEeS2WoXr83SnEA __-sg41oGEeS2WoXr83SnEA __-sg5loGEeS2WoXr83SnEA __-sg61oGEeS2WoXr83SnEA __-sg7loGEeS2WoXr83SnEA __-sg8VoGEeS2WoXr83SnEA __-sg9FoGEeS2WoXr83SnEA __-sg91oGEeS2WoXr83SnEA __-sg-loGEeS2WoXr83SnEA __-sg_VoGEeS2WoXr83SnEA __-shAFoGEeS2WoXr83SnEA __-shBVoGEeS2WoXr83SnEA __-shCloGEeS2WoXr83SnEA __-shDVoGEeS2WoXr83SnEA __-shGFoGEeS2WoXr83SnEA __-shG1oGEeS2WoXr83SnEA __-shHVoGEeS2WoXr83SnEA __-shH1oGEeS2WoXr83SnEA __-shIloGEeS2WoXr83SnEA __-shJVoGEeS2WoXr83SnEA __-shLVoGEeS2WoXr83SnEA __-shgFoGEeS2WoXr83SnEA __-shg1oGEeS2WoXr83SnEA __-shyloGEeS2WoXr83SnEA __-shzVoGEeS2WoXr83SnEA __-sicloGEeS2WoXr83SnEA __-sidVoGEeS2WoXr83SnEA __-sik1oGEeS2WoXr83SnEA __-silVoGEeS2WoXr83SnEA __-sioFoGEeS2WoXr83SnEA __-sio1oGEeS2WoXr83SnEA __-siploGEeS2WoXr83SnEA __-siqVoGEeS2WoXr83SnEA __-sirFoGEeS2WoXr83SnEA __-siuVoGEeS2WoXr83SnEA __-sivFoGEeS2WoXr83SnEA __-si61oGEeS2WoXr83SnEA __-si7VoGEeS2WoXr83SnEA __-si7loGEeS2WoXr83SnEA __-si81oGEeS2WoXr83SnEA __-si9VoGEeS2WoXr83SnEA __-si_loGEeS2WoXr83SnEA __-sjAVoGEeS2WoXr83SnEA __-sjJFoGEeS2WoXr83SnEA __-sjJloGEeS2WoXr83SnEA __-sjdloGEeS2WoXr83SnEA __-sjeVoGEeS2WoXr83SnEA __-sjzVoGEeS2WoXr83SnEA __-sj0FoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si51oGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation
and Iteration signatures. Instances of OclSelf are never created."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si6FoGEeS2WoXr83SnEA" name="OclState" superClass="__-sibloGEeS2WoXr83SnEA" typedElement="__-sigFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si6VoGEeS2WoXr83SnEA" name="OclSummable" superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si6loGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived
sum and zero implementations may be summed."/>
+ <ownedOperation xmi:id="__-si61oGEeS2WoXr83SnEA" name="sum" type="__-si5loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si7FoGEeS2WoXr83SnEA" body="Return the sum of self and that.

The sum operation should be associative."/>
+ <ownedParameter xmi:id="__-si7VoGEeS2WoXr83SnEA" name="that" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si7loGEeS2WoXr83SnEA" name="zero" type="__-si5loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si71oGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.

zero().sum(self) = self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si8FoGEeS2WoXr83SnEA" name="OclTuple" superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si8VoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple
therefore apply to all tuples."/>
+ <ownedOperation xmi:id="__-si8loGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-si81oGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si9FoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-si9VoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-si9loGEeS2WoXr83SnEA" name="OclType" superClass="__-sirVoGEeS2WoXr83SnEA" typedElement="__-si-loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si91oGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined
for OclType are therefore applicable to all UML types."/>
+ <ownedOperation xmi:id="__-si-FoGEeS2WoXr83SnEA" name="conformsTo" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+ <ownedComment xmi:id="__-si-VoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+ <ownedParameter xmi:id="__-si-loGEeS2WoXr83SnEA" name="type2" type="__-si9loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="__-si-1oGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="__-sfy1oGEeS2WoXr83SnEA"
+ superClass="__-sibloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-si_FoGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.
It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.
Any property call applied on oclText[null] results in oclText[invalid], except for the
oclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.
However, by virtue of the implicit conversion to a collection literal,
an expression evaluating to oclText[null] can be used as source of collection operations (such as ‘isEmpty’).
If the source is the oclText[null] literal, it is implicitly converted to Bag{}.

OclVoid is itself an instance of the metatype VoidType."/>
+ <ownedOperation xmi:id="__-si_VoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-si_loGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-si_1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sjAFoGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]
if object is oclText[invalid], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__-sjAVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjAloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__-sgXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+ <ownedComment xmi:id="__-sjA1oGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjBFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+ precedence="__-skJVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-sjBVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjBloGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+ precedence="__-skKFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-sjB1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjCFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__-sjCVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__-sjCloGEeS2WoXr83SnEA" name="or" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+ precedence="__-skJloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-sjC1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__-sgoFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjDFoGEeS2WoXr83SnEA" name="toString" type="__-shEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__-sjDVoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-sjDloGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__-sfZloGEeS2WoXr83SnEA"
+ elementType="__-sjEVoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-sjD1oGEeS2WoXr83SnEA" templateBinding="__-sf31oGEeS2WoXr83SnEA __-sf4loGEeS2WoXr83SnEA __-sf5VoGEeS2WoXr83SnEA __-sf6FoGEeS2WoXr83SnEA __-sf61oGEeS2WoXr83SnEA __-sf7loGEeS2WoXr83SnEA __-sf8VoGEeS2WoXr83SnEA __-sf9FoGEeS2WoXr83SnEA __-sf91oGEeS2WoXr83SnEA __-sf-loGEeS2WoXr83SnEA __-sf_VoGEeS2WoXr83SnEA __-sgAFoGEeS2WoXr83SnEA __-sgA1oGEeS2WoXr83SnEA __-sgBloGEeS2WoXr83SnEA __-sgCVoGEeS2WoXr83SnEA __-sgDFoGEeS2WoXr83SnEA __-sgD1oGEeS2WoXr83SnEA __-sgEloGEeS2WoXr83SnEA __-sgFVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjEFoGEeS2WoXr83SnEA" parameteredElement="__-sjEVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sf4FoGEeS2WoXr83SnEA __-sf41oGEeS2WoXr83SnEA __-sf5loGEeS2WoXr83SnEA __-sf6VoGEeS2WoXr83SnEA __-sf7FoGEeS2WoXr83SnEA __-sf71oGEeS2WoXr83SnEA __-sf8loGEeS2WoXr83SnEA __-sf9VoGEeS2WoXr83SnEA __-sf-FoGEeS2WoXr83SnEA __-sf-1oGEeS2WoXr83SnEA __-sf_loGEeS2WoXr83SnEA __-sgAVoGEeS2WoXr83SnEA __-sgBFoGEeS2WoXr83SnEA __-sgB1oGEeS2WoXr83SnEA __-sgCloGEeS2WoXr83SnEA __-sgDVoGEeS2WoXr83SnEA __-sgEFoGEeS2WoXr83SnEA __-sgE1oGEeS2WoXr83SnEA __-sgFloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjEVoGEeS2WoXr83SnEA" name="T" templateParameter="__-sjEFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfaFoGEeS2WoXr83SnEA" typedElement="__-sjEloGEeS2WoXr83SnEA __-sjFVoGEeS2WoXr83SnEA __-sjGloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__-sjEloGEeS2WoXr83SnEA" name="at" isRequired="false" type="__-sjEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-sjE1oGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+ <ownedParameter xmi:id="__-sjFFoGEeS2WoXr83SnEA" name="index" type="__-sgvloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjFVoGEeS2WoXr83SnEA" name="first" isRequired="false" type="__-sjEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-sjFloGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjF1oGEeS2WoXr83SnEA" name="indexOf" type="__-sgvloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+ <ownedComment xmi:id="__-sjGFoGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+ <ownedParameter xmi:id="__-sjGVoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjGloGEeS2WoXr83SnEA" name="last" isRequired="false" type="__-sjEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-sjG1oGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__-sjHFoGEeS2WoXr83SnEA" name="OrderedSet" superClass="__-sf_FoGEeS2WoXr83SnEA __-sgiVoGEeS2WoXr83SnEA"
+ typedElement="__-sjIFoGEeS2WoXr83SnEA __-sjJ1oGEeS2WoXr83SnEA __-sjKloGEeS2WoXr83SnEA __-sjLVoGEeS2WoXr83SnEA __-sjMFoGEeS2WoXr83SnEA __-sjN1oGEeS2WoXr83SnEA __-sjOloGEeS2WoXr83SnEA __-sjPloGEeS2WoXr83SnEA __-sjQVoGEeS2WoXr83SnEA __-sjRFoGEeS2WoXr83SnEA __-sjUFoGEeS2WoXr83SnEA __-sjVFoGEeS2WoXr83SnEA __-sjZVoGEeS2WoXr83SnEA __-sjaVoGEeS2WoXr83SnEA __-sjbVoGEeS2WoXr83SnEA"
+ elementType="__-sjH1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-sjHVoGEeS2WoXr83SnEA" templateBinding="__-sgGFoGEeS2WoXr83SnEA __-sgG1oGEeS2WoXr83SnEA __-sgHloGEeS2WoXr83SnEA __-sgIVoGEeS2WoXr83SnEA __-sgJFoGEeS2WoXr83SnEA __-sgJ1oGEeS2WoXr83SnEA __-sgKloGEeS2WoXr83SnEA __-sgLVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjHloGEeS2WoXr83SnEA" parameteredElement="__-sjH1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sgGVoGEeS2WoXr83SnEA __-sgHFoGEeS2WoXr83SnEA __-sgH1oGEeS2WoXr83SnEA __-sgIloGEeS2WoXr83SnEA __-sgJVoGEeS2WoXr83SnEA __-sgKFoGEeS2WoXr83SnEA __-sgK1oGEeS2WoXr83SnEA __-sgLloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjH1oGEeS2WoXr83SnEA" name="T" templateParameter="__-sjHloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfeloGEeS2WoXr83SnEA __-sf_loGEeS2WoXr83SnEA __-sgi1oGEeS2WoXr83SnEA" typedElement="__-sjKVoGEeS2WoXr83SnEA __-sjOVoGEeS2WoXr83SnEA __-sjPVoGEeS2WoXr83SnEA __-sjQFoGEeS2WoXr83SnEA __-sjV1oGEeS2WoXr83SnEA __-sjXloGEeS2WoXr83SnEA __-sjZFoGEeS2WoXr83SnEA __-sjaFoGEeS2WoXr83SnEA __-sjbFoGEeS2WoXr83SnEA __-sjcFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__-sjIFoGEeS2WoXr83SnEA" name="-" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sjIVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__-sjIloGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjI1oGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-sjJFoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjJVoGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-sjJloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjJ1oGEeS2WoXr83SnEA" name="append" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="__-sjKFoGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="__-sjKVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjKloGEeS2WoXr83SnEA" name="appendAll" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="__-sjK1oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="__-sjLFoGEeS2WoXr83SnEA" name="objects" type="__-sf_FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjLVoGEeS2WoXr83SnEA" name="excluding" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__-sjLloGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="__-sjL1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjMFoGEeS2WoXr83SnEA" name="excludingAll" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__-sjMVoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__-sjMloGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjM1oGEeS2WoXr83SnEA" name="flatten" type="__-sgHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedTemplateSignature xmi:id="__-sjNFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjNVoGEeS2WoXr83SnEA" parameteredElement="__-sjNloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjNloGEeS2WoXr83SnEA" name="T2" templateParameter="__-sjNVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfcVoGEeS2WoXr83SnEA __-sf9VoGEeS2WoXr83SnEA __-sgH1oGEeS2WoXr83SnEA __-sggloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjN1oGEeS2WoXr83SnEA" name="including" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__-sjOFoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+ <ownedParameter xmi:id="__-sjOVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjOloGEeS2WoXr83SnEA" name="insertAt" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-sjO1oGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+ <ownedParameter xmi:id="__-sjPFoGEeS2WoXr83SnEA" name="index" type="__-sgvloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-sjPVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjPloGEeS2WoXr83SnEA" name="prepend" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="__-sjP1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__-sjQFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjQVoGEeS2WoXr83SnEA" name="prependAll" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="__-sjQloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__-sjQ1oGEeS2WoXr83SnEA" name="objects" type="__-sf_FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjRFoGEeS2WoXr83SnEA" name="reverse" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="__-sjRVoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjRloGEeS2WoXr83SnEA" name="selectByKind" type="__-sgIFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__-sjR1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjSFoGEeS2WoXr83SnEA" parameteredElement="__-sjSVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjSVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjSFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfdFoGEeS2WoXr83SnEA __-sfzloGEeS2WoXr83SnEA __-sf-FoGEeS2WoXr83SnEA __-sgIloGEeS2WoXr83SnEA __-sghVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjSloGEeS2WoXr83SnEA" name="type" type="__-sfzFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjS1oGEeS2WoXr83SnEA" name="selectByType" type="__-sgI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__-sjTFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjTVoGEeS2WoXr83SnEA" parameteredElement="__-sjTloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjTloGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjTVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfd1oGEeS2WoXr83SnEA __-sf0VoGEeS2WoXr83SnEA __-sf-1oGEeS2WoXr83SnEA __-sgJVoGEeS2WoXr83SnEA __-sgiFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjT1oGEeS2WoXr83SnEA" name="type" type="__-sfz1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjUFoGEeS2WoXr83SnEA" name="subOrderedSet" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-sjUVoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="__-sjUloGEeS2WoXr83SnEA" name="lower" type="__-sgvloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-sjU1oGEeS2WoXr83SnEA" name="upper" type="__-sgvloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjVFoGEeS2WoXr83SnEA" name="closure" type="__-sjHFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__-sjVVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__-sjVloGEeS2WoXr83SnEA" name="lambda" type="__-se6VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjV1oGEeS2WoXr83SnEA" name="i" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjWFoGEeS2WoXr83SnEA" name="collectNested" type="__-sgO1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__-sjWVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="__-sjWloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjW1oGEeS2WoXr83SnEA" parameteredElement="__-sjXFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjXFoGEeS2WoXr83SnEA" name="V" templateParameter="__-sjW1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfa1oGEeS2WoXr83SnEA __-sf71oGEeS2WoXr83SnEA __-sgPVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjXVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se6loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjXloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjX1oGEeS2WoXr83SnEA" name="collect" type="__-sgPloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__-sjYFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjYVoGEeS2WoXr83SnEA" parameteredElement="__-sjYloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjYloGEeS2WoXr83SnEA" name="V" templateParameter="__-sjYVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfbloGEeS2WoXr83SnEA __-sf8loGEeS2WoXr83SnEA __-sgQFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjY1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se61oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjZFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjZVoGEeS2WoXr83SnEA" name="reject" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__-sjZloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__-sjZ1oGEeS2WoXr83SnEA" name="lambda" type="__-se51oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjaFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjaVoGEeS2WoXr83SnEA" name="select" type="__-sjHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__-sjaloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+ <ownedParameter xmi:id="__-sja1oGEeS2WoXr83SnEA" name="lambda" type="__-se51oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjbFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjbVoGEeS2WoXr83SnEA" name="sortedBy" type="__-sjHFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__-sjbloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__-sjb1oGEeS2WoXr83SnEA" name="lambda" type="__-se6FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjcFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__-sjcVoGEeS2WoXr83SnEA" name="Sequence" superClass="__-sgDloGEeS2WoXr83SnEA"
+ typedElement="__-sjeloGEeS2WoXr83SnEA __-sjfVoGEeS2WoXr83SnEA __-sjgFoGEeS2WoXr83SnEA __-sjg1oGEeS2WoXr83SnEA __-sji1oGEeS2WoXr83SnEA __-sjjloGEeS2WoXr83SnEA __-sjkloGEeS2WoXr83SnEA __-sjlVoGEeS2WoXr83SnEA __-sjmFoGEeS2WoXr83SnEA __-sjpFoGEeS2WoXr83SnEA __-sjuVoGEeS2WoXr83SnEA __-sjvVoGEeS2WoXr83SnEA __-sjwVoGEeS2WoXr83SnEA"
+ elementType="__-sjdFoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-sjcloGEeS2WoXr83SnEA" templateBinding="__-sgMFoGEeS2WoXr83SnEA __-sgM1oGEeS2WoXr83SnEA __-sgNloGEeS2WoXr83SnEA __-sgOVoGEeS2WoXr83SnEA __-sgPFoGEeS2WoXr83SnEA __-sgP1oGEeS2WoXr83SnEA __-sgQloGEeS2WoXr83SnEA __-sgRVoGEeS2WoXr83SnEA __-sgSFoGEeS2WoXr83SnEA __-sgS1oGEeS2WoXr83SnEA __-sgTloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjc1oGEeS2WoXr83SnEA" parameteredElement="__-sjdFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sgMVoGEeS2WoXr83SnEA __-sgNFoGEeS2WoXr83SnEA __-sgN1oGEeS2WoXr83SnEA __-sgOloGEeS2WoXr83SnEA __-sgPVoGEeS2WoXr83SnEA __-sgQFoGEeS2WoXr83SnEA __-sgQ1oGEeS2WoXr83SnEA __-sgRloGEeS2WoXr83SnEA __-sgSVoGEeS2WoXr83SnEA __-sgTFoGEeS2WoXr83SnEA __-sgT1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjdFoGEeS2WoXr83SnEA" name="T" templateParameter="__-sjc1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfjFoGEeS2WoXr83SnEA __-sgEFoGEeS2WoXr83SnEA __-sgKFoGEeS2WoXr83SnEA __-sgjloGEeS2WoXr83SnEA"
+ typedElement="__-sjfFoGEeS2WoXr83SnEA __-sjjVoGEeS2WoXr83SnEA __-sjkVoGEeS2WoXr83SnEA __-sjlFoGEeS2WoXr83SnEA __-sjq1oGEeS2WoXr83SnEA __-sjsloGEeS2WoXr83SnEA __-sjuFoGEeS2WoXr83SnEA __-sjvFoGEeS2WoXr83SnEA __-sjwFoGEeS2WoXr83SnEA __-sjxFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__-sjdVoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-sjdloGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjd1oGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sjeFoGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+ <ownedParameter xmi:id="__-sjeVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjeloGEeS2WoXr83SnEA" name="append" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="__-sje1oGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="__-sjfFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjfVoGEeS2WoXr83SnEA" name="appendAll" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="__-sjfloGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="__-sjf1oGEeS2WoXr83SnEA" name="objects" type="__-sgDloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjgFoGEeS2WoXr83SnEA" name="excluding" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__-sjgVoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="__-sjgloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjg1oGEeS2WoXr83SnEA" name="excludingAll" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__-sjhFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__-sjhVoGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjhloGEeS2WoXr83SnEA" name="flatten" type="__-sgR1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__-sjh1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].
If the element type is a collection type, the result is the sequence containing all the elements
of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+ <ownedTemplateSignature xmi:id="__-sjiFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjiVoGEeS2WoXr83SnEA" parameteredElement="__-sjiloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjiloGEeS2WoXr83SnEA" name="T2" templateParameter="__-sjiVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfg1oGEeS2WoXr83SnEA __-sgB1oGEeS2WoXr83SnEA __-sgSVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sji1oGEeS2WoXr83SnEA" name="including" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__-sjjFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+ <ownedParameter xmi:id="__-sjjVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjjloGEeS2WoXr83SnEA" name="insertAt" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-sjj1oGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+ <ownedParameter xmi:id="__-sjkFoGEeS2WoXr83SnEA" name="index" type="__-sgvloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-sjkVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjkloGEeS2WoXr83SnEA" name="prepend" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="__-sjk1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__-sjlFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjlVoGEeS2WoXr83SnEA" name="prependAll" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="__-sjlloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__-sjl1oGEeS2WoXr83SnEA" name="objects" type="__-sgDloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjmFoGEeS2WoXr83SnEA" name="reverse" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="__-sjmVoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjmloGEeS2WoXr83SnEA" name="selectByKind" type="__-sgSloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__-sjm1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjnFoGEeS2WoXr83SnEA" parameteredElement="__-sjnVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjnVoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjnFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfhloGEeS2WoXr83SnEA __-sf1FoGEeS2WoXr83SnEA __-sgCloGEeS2WoXr83SnEA __-sgTFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjnloGEeS2WoXr83SnEA" name="type" type="__-sf0loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjn1oGEeS2WoXr83SnEA" name="selectByType" type="__-sgTVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__-sjoFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjoVoGEeS2WoXr83SnEA" parameteredElement="__-sjoloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjoloGEeS2WoXr83SnEA" name="TT" templateParameter="__-sjoVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfiVoGEeS2WoXr83SnEA __-sf11oGEeS2WoXr83SnEA __-sgDVoGEeS2WoXr83SnEA __-sgT1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjo1oGEeS2WoXr83SnEA" name="type" type="__-sf1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjpFoGEeS2WoXr83SnEA" name="subSequence" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__-sjpVoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="__-sjploGEeS2WoXr83SnEA" name="lower" type="__-sgvloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__-sjp1oGEeS2WoXr83SnEA" name="upper" type="__-sgvloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjqFoGEeS2WoXr83SnEA" name="closure" type="__-sgJloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__-sjqVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__-sjqloGEeS2WoXr83SnEA" name="lambda" type="__-se7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjq1oGEeS2WoXr83SnEA" name="i" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjrFoGEeS2WoXr83SnEA" name="collectNested" type="__-sgQVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__-sjrVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="__-sjrloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjr1oGEeS2WoXr83SnEA" parameteredElement="__-sjsFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjsFoGEeS2WoXr83SnEA" name="V" templateParameter="__-sjr1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sffVoGEeS2WoXr83SnEA __-sgAVoGEeS2WoXr83SnEA __-sgQ1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjsVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se71oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjsloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjs1oGEeS2WoXr83SnEA" name="collect" type="__-sgRFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__-sjtFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjtVoGEeS2WoXr83SnEA" parameteredElement="__-sjtloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjtloGEeS2WoXr83SnEA" name="V" templateParameter="__-sjtVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfgFoGEeS2WoXr83SnEA __-sgBFoGEeS2WoXr83SnEA __-sgRloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sjt1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se8FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjuFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjuVoGEeS2WoXr83SnEA" name="reject" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__-sjuloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__-sju1oGEeS2WoXr83SnEA" name="lambda" type="__-se7FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjvFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjvVoGEeS2WoXr83SnEA" name="select" type="__-sjcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__-sjvloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__-sjv1oGEeS2WoXr83SnEA" name="lambda" type="__-se7FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjwFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sjwVoGEeS2WoXr83SnEA" name="sortedBy" type="__-sjcVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__-sjwloGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__-sjw1oGEeS2WoXr83SnEA" name="lambda" type="__-se7VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sjxFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjdFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__-sjxVoGEeS2WoXr83SnEA" name="Set" superClass="__-sgmFoGEeS2WoXr83SnEA" typedElement="__-sjyVoGEeS2WoXr83SnEA __-sj0VoGEeS2WoXr83SnEA __-sj1FoGEeS2WoXr83SnEA __-sj3FoGEeS2WoXr83SnEA __-sj31oGEeS2WoXr83SnEA __-sj7FoGEeS2WoXr83SnEA __-sj_VoGEeS2WoXr83SnEA __-skAVoGEeS2WoXr83SnEA"
+ elementType="__-sjyFoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-sjxloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sjx1oGEeS2WoXr83SnEA" parameteredElement="__-sjyFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sjyFoGEeS2WoXr83SnEA" name="T" templateParameter="__-sjx1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfnloGEeS2WoXr83SnEA __-sgE1oGEeS2WoXr83SnEA __-sgK1oGEeS2WoXr83SnEA __-sgmloGEeS2WoXr83SnEA"
+ typedElement="__-sj3loGEeS2WoXr83SnEA __-sj71oGEeS2WoXr83SnEA __-sj9loGEeS2WoXr83SnEA __-sj_FoGEeS2WoXr83SnEA __-skAFoGEeS2WoXr83SnEA __-skBFoGEeS2WoXr83SnEA __-skCFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgUloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgVVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgWFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgW1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgXloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgYVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgZFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgZ1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgaloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-sey1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-sezloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-se0VoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#__-sgUVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgVFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgV1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgWloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgXVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgYFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgY1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgZloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgaVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-seyloGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-sezVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-se0FoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__-sjyVoGEeS2WoXr83SnEA" name="-" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sjyloGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__-sjy1oGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjzFoGEeS2WoXr83SnEA" name="<>" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__-sjzVoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sjzloGEeS2WoXr83SnEA" name="=" type="__-sgoFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__-skJFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-sjz1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+ <ownedParameter xmi:id="__-sj0FoGEeS2WoXr83SnEA" name="object2" type="__-si5loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sj0VoGEeS2WoXr83SnEA" name="excluding" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__-sj0loGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+ <ownedParameter xmi:id="__-sj01oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sibloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sj1FoGEeS2WoXr83SnEA" name="excludingAll" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__-sj1VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__-sj1loGEeS2WoXr83SnEA" name="objects" type="__-sfXVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sj11oGEeS2WoXr83SnEA" name="flatten" type="__-sgX1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__-sj2FoGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].
If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__-sj2VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj2loGEeS2WoXr83SnEA" parameteredElement="__-sj21oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj21oGEeS2WoXr83SnEA" name="T2" templateParameter="__-sj2loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sflVoGEeS2WoXr83SnEA __-sgYVoGEeS2WoXr83SnEA __-sgkVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sj3FoGEeS2WoXr83SnEA" name="including" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__-sj3VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__-sj3loGEeS2WoXr83SnEA" name="object" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sj31oGEeS2WoXr83SnEA" name="includingAll" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__-sj4FoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__-sj4VoGEeS2WoXr83SnEA" name="objects" type="__-sfnFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sj4loGEeS2WoXr83SnEA" name="selectByKind" type="__-sgYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__-sj41oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj5FoGEeS2WoXr83SnEA" parameteredElement="__-sj5VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj5VoGEeS2WoXr83SnEA" name="TT" templateParameter="__-sj5FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfmFoGEeS2WoXr83SnEA __-sf2loGEeS2WoXr83SnEA __-sgZFoGEeS2WoXr83SnEA __-sglFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sj5loGEeS2WoXr83SnEA" name="type" type="__-sf2FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-sj51oGEeS2WoXr83SnEA" name="selectByType" type="__-sgZVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__-sj6FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj6VoGEeS2WoXr83SnEA" parameteredElement="__-sj6loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj6loGEeS2WoXr83SnEA" name="TT" templateParameter="__-sj6VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfm1oGEeS2WoXr83SnEA __-sf3VoGEeS2WoXr83SnEA __-sgZ1oGEeS2WoXr83SnEA __-sgl1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sj61oGEeS2WoXr83SnEA" name="type" type="__-sf21oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj7FoGEeS2WoXr83SnEA" name="closure" type="__-sjxVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__-sj7VoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__-sj7loGEeS2WoXr83SnEA" name="lambda" type="__-se81oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sj71oGEeS2WoXr83SnEA" name="i" type="__-sjyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj8FoGEeS2WoXr83SnEA" name="collectNested" type="__-sfFVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__-sj8VoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="__-sj8loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj81oGEeS2WoXr83SnEA" parameteredElement="__-sj9FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj9FoGEeS2WoXr83SnEA" name="V" templateParameter="__-sj81oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfF1oGEeS2WoXr83SnEA __-sfj1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sj9VoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se9FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sj9loGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj91oGEeS2WoXr83SnEA" name="collect" type="__-sfGFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__-sj-FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-sj-VoGEeS2WoXr83SnEA" parameteredElement="__-sj-loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-sj-loGEeS2WoXr83SnEA" name="V" templateParameter="__-sj-VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfGloGEeS2WoXr83SnEA __-sfkloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__-sj-1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__-se9VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-sj_FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-sj_VoGEeS2WoXr83SnEA" name="reject" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__-sj_loGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__-sj_1oGEeS2WoXr83SnEA" name="lambda" type="__-se8VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-skAFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-skAVoGEeS2WoXr83SnEA" name="select" type="__-sjxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__-skAloGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+ <ownedParameter xmi:id="__-skA1oGEeS2WoXr83SnEA" name="lambda" type="__-se8VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-skBFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-skBVoGEeS2WoXr83SnEA" name="sortedBy" type="__-sgKVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__-skBloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__-skB1oGEeS2WoXr83SnEA" name="lambda" type="__-se8loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-skCFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-sjyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-skCVoGEeS2WoXr83SnEA" name="State" superClass="__-si6FoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__-skCloGEeS2WoXr83SnEA" name="Type" superClass="__-si9loGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__-skC1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__-sfn1oGEeS2WoXr83SnEA"
+ typedElement="__-skD1oGEeS2WoXr83SnEA __-skGloGEeS2WoXr83SnEA" elementType="__-skDloGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__-skDFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__-skDVoGEeS2WoXr83SnEA" parameteredElement="__-skDloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__-skDloGEeS2WoXr83SnEA" name="T" templateParameter="__-skDVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__-sfoVoGEeS2WoXr83SnEA __-sgFloGEeS2WoXr83SnEA __-sgLloGEeS2WoXr83SnEA __-sgaloGEeS2WoXr83SnEA __-sgnVoGEeS2WoXr83SnEA"
+ typedElement="__-skHloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgbVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgcFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgc1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgdloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgeVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgfFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgf1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sggloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sghVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgiFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgi1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgjloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgkVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sglFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgl1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgmloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__-sgnVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-se1FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-se11oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="ClassMM_IN.xml#__-se2loGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#__-sgbFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgb1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgcloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgdVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgeFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sge1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgfloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sggVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sghFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgh1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgiloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgjVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgkFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgk1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sglloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgmVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__-sgnFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-se01oGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-se1loGEeS2WoXr83SnEA"/>
+ <templateBinding href="ClassMM_IN.xml#__-se2VoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__-skD1oGEeS2WoXr83SnEA" name="-" type="__-skC1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__-skIloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__-skEFoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__-skEVoGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-skEloGEeS2WoXr83SnEA" name="intersection" type="__-sgaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__-skE1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+ <ownedParameter xmi:id="__-skFFoGEeS2WoXr83SnEA" name="c" type="__-sfn1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-skFVoGEeS2WoXr83SnEA" name="symmetricDifference" type="__-sgaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+ <ownedComment xmi:id="__-skFloGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+ <ownedParameter xmi:id="__-skF1oGEeS2WoXr83SnEA" name="s" type="__-sgd1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__-skGFoGEeS2WoXr83SnEA" name="union" type="__-sgaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="__-skGVoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+ <ownedParameter xmi:id="__-skGloGEeS2WoXr83SnEA" name="s" type="__-skC1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__-skG1oGEeS2WoXr83SnEA" name="sortedBy" type="__-sgLFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__-skHFoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__-skHVoGEeS2WoXr83SnEA" name="lambda" type="__-se9loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__-skHloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__-skDloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedPrecedence xmi:id="__-skH1oGEeS2WoXr83SnEA" name="NAVIGATION"/>
+ <ownedPrecedence xmi:id="__-skIFoGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+ <ownedPrecedence xmi:id="__-skIVoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+ <ownedPrecedence xmi:id="__-skIloGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+ <ownedPrecedence xmi:id="__-skI1oGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+ <ownedPrecedence xmi:id="__-skJFoGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+ <ownedPrecedence xmi:id="__-skJVoGEeS2WoXr83SnEA" name="AND" order="6"/>
+ <ownedPrecedence xmi:id="__-skJloGEeS2WoXr83SnEA" name="OR" order="7"/>
+ <ownedPrecedence xmi:id="__-skJ1oGEeS2WoXr83SnEA" name="XOR" order="8"/>
+ <ownedPrecedence xmi:id="__-skKFoGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/OCL.xml
new file mode 100644
index 0000000..7a22e5b
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/OCL.xml
@@ -0,0 +1,2763 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_AT22UFoHEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <nestedPackage xmi:id="_AT22UVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22UloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25J1oHEeS2WoXr83SnEA _AT25K1oHEeS2WoXr83SnEA"
+ contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22U1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25HVoHEeS2WoXr83SnEA"
+ contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT25HFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22VFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25I1oHEeS2WoXr83SnEA"
+ contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT25IloHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22VVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25L1oHEeS2WoXr83SnEA"
+ contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22VloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25FloHEeS2WoXr83SnEA"
+ contextType="_AT2481oHEeS2WoXr83SnEA" resultType="_AT23yFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22V1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25mFoHEeS2WoXr83SnEA _AT25qVoHEeS2WoXr83SnEA _AT25rloHEeS2WoXr83SnEA _AT25sVoHEeS2WoXr83SnEA _AT25tloHEeS2WoXr83SnEA _AT25xVoHEeS2WoXr83SnEA _AT25yVoHEeS2WoXr83SnEA _AT25zVoHEeS2WoXr83SnEA"
+ contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22WFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25n1oHEeS2WoXr83SnEA"
+ contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT25nloHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22WVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25ploHEeS2WoXr83SnEA"
+ contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT25pVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22WloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25wFoHEeS2WoXr83SnEA"
+ contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT25v1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22W1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT25uloHEeS2WoXr83SnEA _AT250VoHEeS2WoXr83SnEA"
+ contextType="_AT25NVoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22XFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT263FoHEeS2WoXr83SnEA _AT264FoHEeS2WoXr83SnEA"
+ contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22XVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT265FoHEeS2WoXr83SnEA"
+ contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22XloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT26y1oHEeS2WoXr83SnEA"
+ contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT26kVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22X1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT260loHEeS2WoXr83SnEA"
+ contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT260VoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22YFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT262FoHEeS2WoXr83SnEA"
+ contextType="_AT26lFoHEeS2WoXr83SnEA" resultType="_AT2611oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22YVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27MFoHEeS2WoXr83SnEA _AT27NFoHEeS2WoXr83SnEA"
+ contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22YloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27OFoHEeS2WoXr83SnEA"
+ contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22Y1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27H1oHEeS2WoXr83SnEA"
+ contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT23m1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22ZFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27JloHEeS2WoXr83SnEA"
+ contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT27JVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22ZVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27LFoHEeS2WoXr83SnEA"
+ contextType="_AT266VoHEeS2WoXr83SnEA" resultType="_AT27K1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22ZloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27dFoHEeS2WoXr83SnEA _AT27eFoHEeS2WoXr83SnEA"
+ contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT24FVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22Z1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27fFoHEeS2WoXr83SnEA"
+ contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22aFoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27Y1oHEeS2WoXr83SnEA"
+ contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT27OloHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22aVoHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27aloHEeS2WoXr83SnEA"
+ contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT27aVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22aloHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27cFoHEeS2WoXr83SnEA"
+ contextType="_AT27PVoHEeS2WoXr83SnEA" resultType="_AT27b1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_AT22a1oHEeS2WoXr83SnEA" name="Lambda" superClass="_AT26T1oHEeS2WoXr83SnEA" typedElement="_AT27kloHEeS2WoXr83SnEA"
+ contextType="_AT27g1oHEeS2WoXr83SnEA" resultType="_AT2541oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_AT22bFoHEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_AT22mFoHEeS2WoXr83SnEA _AT23x1oHEeS2WoXr83SnEA _AT234loHEeS2WoXr83SnEA"
+ superClass="_AT26ZVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT22bVoHEeS2WoXr83SnEA" name="first" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT22bloHEeS2WoXr83SnEA" name="second" type="_AT25g1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22b1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22mVoHEeS2WoXr83SnEA" typedElement="_AT25GFoHEeS2WoXr83SnEA" elementType="_AT25HFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22cFoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22cVoHEeS2WoXr83SnEA" actual="_AT25HFoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22cloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22nFoHEeS2WoXr83SnEA" typedElement="_AT25H1oHEeS2WoXr83SnEA" elementType="_AT25IloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22c1oHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22dFoHEeS2WoXr83SnEA" actual="_AT25IloHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22dVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22n1oHEeS2WoXr83SnEA" typedElement="_AT24_1oHEeS2WoXr83SnEA" elementType="_AT25A1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22dloHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22d1oHEeS2WoXr83SnEA" actual="_AT25A1oHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22eFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22oloHEeS2WoXr83SnEA" typedElement="_AT25CloHEeS2WoXr83SnEA" elementType="_AT25DVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22eVoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22eloHEeS2WoXr83SnEA" actual="_AT25DVoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22e1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22pVoHEeS2WoXr83SnEA" typedElement="_AT25D1oHEeS2WoXr83SnEA" elementType="_AT25EloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22fFoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22fVoHEeS2WoXr83SnEA" actual="_AT25EloHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22floHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22w1oHEeS2WoXr83SnEA" typedElement="_AT25Q1oHEeS2WoXr83SnEA _AT25cVoHEeS2WoXr83SnEA _AT25k1oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22f1oHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22gFoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22gVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22xloHEeS2WoXr83SnEA" typedElement="_AT25NloHEeS2WoXr83SnEA" elementType="_AT25MloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22gloHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22g1oHEeS2WoXr83SnEA" actual="_AT25MloHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22hFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22zFoHEeS2WoXr83SnEA" typedElement="_AT2521oHEeS2WoXr83SnEA" elementType="_AT2501oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22hVoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22hloHEeS2WoXr83SnEA" actual="_AT2501oHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22h1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT22z1oHEeS2WoXr83SnEA" typedElement="_AT254FoHEeS2WoXr83SnEA" elementType="_AT253FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22iFoHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22iVoHEeS2WoXr83SnEA" actual="_AT253FoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22iloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT23AloHEeS2WoXr83SnEA" typedElement="_AT27ZVoHEeS2WoXr83SnEA" elementType="_AT27aVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22i1oHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22jFoHEeS2WoXr83SnEA" actual="_AT27aVoHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT22jVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_AT248FoHEeS2WoXr83SnEA"
+ superClass="_AT23BVoHEeS2WoXr83SnEA" typedElement="_AT27bFoHEeS2WoXr83SnEA" elementType="_AT27b1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22jloHEeS2WoXr83SnEA" signature="_AT248VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22j1oHEeS2WoXr83SnEA" actual="_AT27b1oHEeS2WoXr83SnEA" formal="_AT248loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22kFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT24M1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22kVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22kloHEeS2WoXr83SnEA" actual="_AT24M1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22k1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT24h1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22lFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22lVoHEeS2WoXr83SnEA" actual="_AT24h1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22lloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT22bFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22l1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22mFoHEeS2WoXr83SnEA" actual="_AT22bFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22mVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25HFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22mloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22m1oHEeS2WoXr83SnEA" actual="_AT25HFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22nFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25IloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22nVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22nloHEeS2WoXr83SnEA" actual="_AT25IloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22n1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25A1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22oFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22oVoHEeS2WoXr83SnEA" actual="_AT25A1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22oloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25DVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22o1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22pFoHEeS2WoXr83SnEA" actual="_AT25DVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22pVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25EloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22ploHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22p1oHEeS2WoXr83SnEA" actual="_AT25EloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22qFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25CVoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22qVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22qloHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22q1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25mloHEeS2WoXr83SnEA" elementType="_AT25nloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22rFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22rVoHEeS2WoXr83SnEA" actual="_AT25nloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22rloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25oVoHEeS2WoXr83SnEA" elementType="_AT25pVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22r1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22sFoHEeS2WoXr83SnEA" actual="_AT25pVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22sVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25VloHEeS2WoXr83SnEA" elementType="_AT25VVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22sloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22s1oHEeS2WoXr83SnEA" actual="_AT25VVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22tFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25XVoHEeS2WoXr83SnEA" elementType="_AT25YVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22tVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22tloHEeS2WoXr83SnEA" actual="_AT25YVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22t1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25aloHEeS2WoXr83SnEA" elementType="_AT25aVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22uFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22uVoHEeS2WoXr83SnEA" actual="_AT25aVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22uloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25hFoHEeS2WoXr83SnEA" elementType="_AT25g1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22u1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22vFoHEeS2WoXr83SnEA" actual="_AT25g1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22vVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25hVoHEeS2WoXr83SnEA" elementType="_AT25iFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22vloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22v1oHEeS2WoXr83SnEA" actual="_AT25iFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22wFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25iloHEeS2WoXr83SnEA" elementType="_AT25jVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22wVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22wloHEeS2WoXr83SnEA" actual="_AT25jVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22w1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22xFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22xVoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22xloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT25MloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22x1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22yFoHEeS2WoXr83SnEA" actual="_AT25MloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22yVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22yloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22y1oHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22zFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT2501oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22zVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22zloHEeS2WoXr83SnEA" actual="_AT2501oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22z1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT253FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT220FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT220VoHEeS2WoXr83SnEA" actual="_AT253FoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT220loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT24_loHEeS2WoXr83SnEA _AT25XFoHEeS2WoXr83SnEA _AT26p1oHEeS2WoXr83SnEA _AT26-loHEeS2WoXr83SnEA _AT27S1oHEeS2WoXr83SnEA"
+ elementType="_AT2541oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT2201oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT221FoHEeS2WoXr83SnEA" actual="_AT2541oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT221VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26IloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT221loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT2211oHEeS2WoXr83SnEA" actual="_AT26IloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT222FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26W1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT222VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT222loHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2221oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26hloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT223FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT223VoHEeS2WoXr83SnEA" actual="_AT26hloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT223loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT260VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT2231oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT224FoHEeS2WoXr83SnEA" actual="_AT260VoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT224VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT2611oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT224loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT2241oHEeS2WoXr83SnEA" actual="_AT2611oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT225FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT225VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT225loHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2251oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT226FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT226VoHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT226loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT2261oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT227FoHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT227VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26lFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT227loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT2271oHEeS2WoXr83SnEA" actual="_AT26lFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT228FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27JVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT228VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT228loHEeS2WoXr83SnEA" actual="_AT27JVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2281oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27K1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT229FoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT229VoHEeS2WoXr83SnEA" actual="_AT27K1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT229loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT26_1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT2291oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22-FoHEeS2WoXr83SnEA" actual="_AT26_1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22-VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27EloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22-loHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22-1oHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22_FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27F1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT22_VoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT22_loHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT22_1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23AFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23AVoHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23AloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27aVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23A1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23BFoHEeS2WoXr83SnEA" actual="_AT27aVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23BVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27b1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23BloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23B1oHEeS2WoXr83SnEA" actual="_AT27b1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23CFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27UFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23CVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23CloHEeS2WoXr83SnEA" actual="_AT27UFoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23C1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27WloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23DFoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23DVoHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23DloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" elementType="_AT27X1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23D1oHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23EFoHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23EVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT27VloHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23EloHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23E1oHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23FFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_AT25MloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT27iVoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23FVoHEeS2WoXr83SnEA" signature="_AT25M1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23FloHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT25NFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23F1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT2471oHEeS2WoXr83SnEA" instanceType="_AT247loHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23GFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23GVoHEeS2WoXr83SnEA" actual="_AT247loHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23GloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25DloHEeS2WoXr83SnEA" instanceType="_AT25DVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23G1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23HFoHEeS2WoXr83SnEA" actual="_AT25DVoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23HVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25E1oHEeS2WoXr83SnEA" instanceType="_AT25EloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23HloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23H1oHEeS2WoXr83SnEA" actual="_AT25EloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23IFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25iVoHEeS2WoXr83SnEA" instanceType="_AT25iFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23IVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23IloHEeS2WoXr83SnEA" actual="_AT25iFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23I1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25jloHEeS2WoXr83SnEA" instanceType="_AT25jVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23JFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23JVoHEeS2WoXr83SnEA" actual="_AT25jVoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23JloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT258loHEeS2WoXr83SnEA" instanceType="_AT258VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23J1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23KFoHEeS2WoXr83SnEA" actual="_AT258VoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23KVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT25_VoHEeS2WoXr83SnEA" instanceType="_AT25_FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23KloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23K1oHEeS2WoXr83SnEA" actual="_AT25_FoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23LFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26BVoHEeS2WoXr83SnEA" instanceType="_AT26BFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23LVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23LloHEeS2WoXr83SnEA" actual="_AT26BFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23L1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26PVoHEeS2WoXr83SnEA" instanceType="_AT26PFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23MFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23MVoHEeS2WoXr83SnEA" actual="_AT26PFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23MloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26Q1oHEeS2WoXr83SnEA" instanceType="_AT26QloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23M1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23NFoHEeS2WoXr83SnEA" actual="_AT26QloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23NVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26SFoHEeS2WoXr83SnEA" instanceType="_AT26R1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23NloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23N1oHEeS2WoXr83SnEA" actual="_AT26R1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23OFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" instanceType="_AT26KloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23OVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23OloHEeS2WoXr83SnEA" actual="_AT26KloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23O1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26DVoHEeS2WoXr83SnEA _AT26SloHEeS2WoXr83SnEA" instanceType="_AT26W1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23PFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23PVoHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23PloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" instanceType="_AT26cFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23P1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23QFoHEeS2WoXr83SnEA" actual="_AT26cFoHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23QVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26v1oHEeS2WoXr83SnEA" instanceType="_AT26vloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23QloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23Q1oHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23RFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT26xFoHEeS2WoXr83SnEA" instanceType="_AT26w1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23RVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23RloHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23R1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27E1oHEeS2WoXr83SnEA" instanceType="_AT27EloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23SFoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23SVoHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23SloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27GFoHEeS2WoXr83SnEA" instanceType="_AT27F1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23S1oHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23TFoHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23TVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27W1oHEeS2WoXr83SnEA" instanceType="_AT27WloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23TloHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23T1oHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT23UFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_AT253FoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" typedElement="_AT27YFoHEeS2WoXr83SnEA" instanceType="_AT27X1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23UVoHEeS2WoXr83SnEA" signature="_AT253VoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23UloHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT253loHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23U1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22kFoHEeS2WoXr83SnEA" elementType="_AT24M1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23VFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23VVoHEeS2WoXr83SnEA" actual="_AT24M1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23VloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22k1oHEeS2WoXr83SnEA" elementType="_AT24h1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23V1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23WFoHEeS2WoXr83SnEA" actual="_AT24h1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23WVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22qFoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23WloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23W1oHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23XFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22w1oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23XVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23XloHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23X1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22yVoHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23YFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23YVoHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23YloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT223loHEeS2WoXr83SnEA" elementType="_AT260VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23Y1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23ZFoHEeS2WoXr83SnEA" actual="_AT260VoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23ZVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT224VoHEeS2WoXr83SnEA" elementType="_AT2611oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23ZloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23Z1oHEeS2WoXr83SnEA" actual="_AT2611oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23aFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT225FoHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23aVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23aloHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23a1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT2251oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23bFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23bVoHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23bloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT226loHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23b1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23cFoHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23cVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT227VoHEeS2WoXr83SnEA" typedElement="_AT26oVoHEeS2WoXr83SnEA _AT26uFoHEeS2WoXr83SnEA" elementType="_AT26lFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23cloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23c1oHEeS2WoXr83SnEA" actual="_AT26lFoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23dFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT228FoHEeS2WoXr83SnEA" elementType="_AT27JVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23dVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23dloHEeS2WoXr83SnEA" actual="_AT27JVoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23d1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT2281oHEeS2WoXr83SnEA" elementType="_AT27K1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23eFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23eVoHEeS2WoXr83SnEA" actual="_AT27K1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23eloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT229loHEeS2WoXr83SnEA" elementType="_AT26_1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23e1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23fFoHEeS2WoXr83SnEA" actual="_AT26_1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23fVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22-VoHEeS2WoXr83SnEA" elementType="_AT27EloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23floHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23f1oHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23gFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22_FoHEeS2WoXr83SnEA" elementType="_AT27F1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23gVoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23gloHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23g1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT22_1oHEeS2WoXr83SnEA" typedElement="_AT269FoHEeS2WoXr83SnEA _AT27DFoHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23hFoHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23hVoHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23hloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT23EVoHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23h1oHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23iFoHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23iVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_AT26g1oHEeS2WoXr83SnEA"
+ superClass="_AT23FFoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23iloHEeS2WoXr83SnEA" signature="_AT26hFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23i1oHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT26hVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23jFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23XFoHEeS2WoXr83SnEA _AT235loHEeS2WoXr83SnEA" typedElement="_AT25RVoHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23jVoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23jloHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23j1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23X1oHEeS2WoXr83SnEA _AT236VoHEeS2WoXr83SnEA" typedElement="_AT251VoHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23kFoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23kVoHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23kloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23aFoHEeS2WoXr83SnEA _AT239VoHEeS2WoXr83SnEA" typedElement="_AT26qFoHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23k1oHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23lFoHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23lVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23a1oHEeS2WoXr83SnEA _AT23-FoHEeS2WoXr83SnEA" typedElement="_AT26u1oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23lloHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23l1oHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23mFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23bloHEeS2WoXr83SnEA _AT23-1oHEeS2WoXr83SnEA" typedElement="_AT26wFoHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23mVoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23mloHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23m1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23g1oHEeS2WoXr83SnEA _AT24AVoHEeS2WoXr83SnEA" typedElement="_AT27HVoHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23nFoHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23nVoHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23nloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23hloHEeS2WoXr83SnEA _AT24DVoHEeS2WoXr83SnEA" typedElement="_AT27eloHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23n1oHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23oFoHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT23oVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_AT26kVoHEeS2WoXr83SnEA"
+ superClass="_AT23iVoHEeS2WoXr83SnEA _AT24EFoHEeS2WoXr83SnEA" typedElement="_AT27kFoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23oloHEeS2WoXr83SnEA" signature="_AT26kloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23o1oHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT26k1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23pFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23U1oHEeS2WoXr83SnEA" elementType="_AT24M1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23pVoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23ploHEeS2WoXr83SnEA" actual="_AT24M1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23p1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23VloHEeS2WoXr83SnEA" typedElement="_AT24nloHEeS2WoXr83SnEA _AT243loHEeS2WoXr83SnEA _AT244FoHEeS2WoXr83SnEA _AT2441oHEeS2WoXr83SnEA"
+ elementType="_AT24h1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23qFoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23qVoHEeS2WoXr83SnEA" actual="_AT24h1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23qloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23WVoHEeS2WoXr83SnEA" typedElement="_AT25LVoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23q1oHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23rFoHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23rVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23XFoHEeS2WoXr83SnEA" typedElement="_AT25R1oHEeS2WoXr83SnEA _AT25z1oHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23rloHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23r1oHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23sFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23YloHEeS2WoXr83SnEA" typedElement="_AT26zVoHEeS2WoXr83SnEA" elementType="_AT260VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23sVoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23sloHEeS2WoXr83SnEA" actual="_AT260VoHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23s1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23ZVoHEeS2WoXr83SnEA" typedElement="_AT261FoHEeS2WoXr83SnEA" elementType="_AT2611oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23tFoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23tVoHEeS2WoXr83SnEA" actual="_AT2611oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23tloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23dFoHEeS2WoXr83SnEA" typedElement="_AT27IVoHEeS2WoXr83SnEA" elementType="_AT27JVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23t1oHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23uFoHEeS2WoXr83SnEA" actual="_AT27JVoHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23uVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23d1oHEeS2WoXr83SnEA" typedElement="_AT27KFoHEeS2WoXr83SnEA" elementType="_AT27K1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23uloHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23u1oHEeS2WoXr83SnEA" actual="_AT27K1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23vFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23eloHEeS2WoXr83SnEA" typedElement="_AT26-1oHEeS2WoXr83SnEA" elementType="_AT26_1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23vVoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23vloHEeS2WoXr83SnEA" actual="_AT26_1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23v1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23fVoHEeS2WoXr83SnEA" typedElement="_AT27D1oHEeS2WoXr83SnEA" elementType="_AT27EloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23wFoHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23wVoHEeS2WoXr83SnEA" actual="_AT27EloHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT23wloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_AT265loHEeS2WoXr83SnEA"
+ superClass="_AT23gFoHEeS2WoXr83SnEA" typedElement="_AT27FFoHEeS2WoXr83SnEA" elementType="_AT27F1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23w1oHEeS2WoXr83SnEA" signature="_AT2651oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23xFoHEeS2WoXr83SnEA" actual="_AT27F1oHEeS2WoXr83SnEA" formal="_AT266FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23xVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT234FoHEeS2WoXr83SnEA" typedElement="_AT25f1oHEeS2WoXr83SnEA" elementType="_AT22bFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23xloHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23x1oHEeS2WoXr83SnEA" actual="_AT22bFoHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23yFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT2341oHEeS2WoXr83SnEA" typedElement="_AT25FFoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23yVoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23yloHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23y1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT235loHEeS2WoXr83SnEA" typedElement="_AT25SVoHEeS2WoXr83SnEA _AT25dFoHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23zFoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23zVoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT23zloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT2371oHEeS2WoXr83SnEA" typedElement="_AT26KFoHEeS2WoXr83SnEA" elementType="_AT26IloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23z1oHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT230FoHEeS2WoXr83SnEA" actual="_AT26IloHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT230VoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT238loHEeS2WoXr83SnEA" typedElement="_AT24HFoHEeS2WoXr83SnEA _AT2511oHEeS2WoXr83SnEA _AT2561oHEeS2WoXr83SnEA _AT26JFoHEeS2WoXr83SnEA _AT26MloHEeS2WoXr83SnEA _AT26OFoHEeS2WoXr83SnEA _AT26d1oHEeS2WoXr83SnEA"
+ elementType="_AT26W1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT230loHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT2301oHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT231FoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT24BFoHEeS2WoXr83SnEA" typedElement="_AT27TFoHEeS2WoXr83SnEA" elementType="_AT27UFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT231VoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT231loHEeS2WoXr83SnEA" actual="_AT27UFoHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT2311oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT24B1oHEeS2WoXr83SnEA" typedElement="_AT27V1oHEeS2WoXr83SnEA" elementType="_AT27WloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT232FoHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT232VoHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT232loHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT24CloHEeS2WoXr83SnEA" typedElement="_AT27XFoHEeS2WoXr83SnEA" elementType="_AT27X1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT2321oHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT233FoHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT233VoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_AT27OloHEeS2WoXr83SnEA"
+ superClass="_AT24EFoHEeS2WoXr83SnEA" typedElement="_AT27h1oHEeS2WoXr83SnEA _AT27iloHEeS2WoXr83SnEA _AT27jVoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT233loHEeS2WoXr83SnEA" signature="_AT27O1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT2331oHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT27PFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT234FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT22lloHEeS2WoXr83SnEA" elementType="_AT22bFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT234VoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT234loHEeS2WoXr83SnEA" actual="_AT22bFoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2341oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT22qFoHEeS2WoXr83SnEA" elementType="_AT2481oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT235FoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT235VoHEeS2WoXr83SnEA" actual="_AT2481oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT235loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT22w1oHEeS2WoXr83SnEA" typedElement="_AT25dloHEeS2WoXr83SnEA" elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT2351oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT236FoHEeS2WoXr83SnEA" actual="_AT25NVoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT236VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT22yVoHEeS2WoXr83SnEA" elementType="_AT252VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT236loHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT2361oHEeS2WoXr83SnEA" actual="_AT252VoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT237FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT220loHEeS2WoXr83SnEA" typedElement="_AT26l1oHEeS2WoXr83SnEA _AT27QFoHEeS2WoXr83SnEA _AT27hloHEeS2WoXr83SnEA _AT27jFoHEeS2WoXr83SnEA"
+ elementType="_AT2541oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT237VoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT237loHEeS2WoXr83SnEA" actual="_AT2541oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT2371oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT221VoHEeS2WoXr83SnEA" elementType="_AT26IloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT238FoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT238VoHEeS2WoXr83SnEA" actual="_AT26IloHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT238loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT222FoHEeS2WoXr83SnEA" elementType="_AT26W1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT2381oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT239FoHEeS2WoXr83SnEA" actual="_AT26W1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT239VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT225FoHEeS2WoXr83SnEA" elementType="_AT26q1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT239loHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT2391oHEeS2WoXr83SnEA" actual="_AT26q1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23-FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT2251oHEeS2WoXr83SnEA" elementType="_AT26vloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23-VoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23-loHEeS2WoXr83SnEA" actual="_AT26vloHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23-1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT226loHEeS2WoXr83SnEA" elementType="_AT26w1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23_FoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT23_VoHEeS2WoXr83SnEA" actual="_AT26w1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT23_loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT227VoHEeS2WoXr83SnEA" elementType="_AT26lFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT23_1oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT24AFoHEeS2WoXr83SnEA" actual="_AT26lFoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24AVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT22_1oHEeS2WoXr83SnEA" elementType="_AT266VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT24AloHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT24A1oHEeS2WoXr83SnEA" actual="_AT266VoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24BFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT23CFoHEeS2WoXr83SnEA" elementType="_AT27UFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT24BVoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT24BloHEeS2WoXr83SnEA" actual="_AT27UFoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24B1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT23C1oHEeS2WoXr83SnEA" elementType="_AT27WloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT24CFoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT24CVoHEeS2WoXr83SnEA" actual="_AT27WloHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24CloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT23DloHEeS2WoXr83SnEA" elementType="_AT27X1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT24C1oHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT24DFoHEeS2WoXr83SnEA" actual="_AT27X1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24DVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT23EVoHEeS2WoXr83SnEA" elementType="_AT27PVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT24DloHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT24D1oHEeS2WoXr83SnEA" actual="_AT27PVoHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT24EFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_AT27gFoHEeS2WoXr83SnEA"
+ superClass="_AT23FFoHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT24EVoHEeS2WoXr83SnEA" signature="_AT27gVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT24EloHEeS2WoXr83SnEA" actual="_AT27g1oHEeS2WoXr83SnEA" formal="_AT27gloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_AT24E1oHEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <ownedComment xmi:id="_AT24FFoHEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.
This sub clause contains all standard types defined within OCL, including all the operations defined on those types.
For each operation the signature and a description of the semantics is given.
Within the description, the reserved word ‘result’ is used to refer to the value that results from evaluating the operation.
In several places, post conditions are used to describe properties of the result.
When there is more than one postcondition, all postconditions must be true.
A similar thing is true for multiple preconditions.
If these are used, the operation is only defined if all preconditions evaluate to oclText[true].

heading:1[Introduction]

The structure, syntax, and semantics of the OCL is defined in Clauses 8 (“Abstract Syntax”), 9 (“Concrete Syntax”),
and 10 (“Semantics Described using UML”).
This sub clause adds another part to the OCL definition: a library of predefined types and operations.
Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,
where the language definition and the standard libraries are both mandatory parts of the complete language definition.

The OCL standard library defines a number of types.
It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.
These are familiar from many other languages. The second part of the standard library consists of the collection types.
They are Bag, Set, Sequence, and Collection where Collection is an abstract type.
Note that all types defined in the OCL standard library are instances of an abstract syntax class.
The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.

Next to definitions of types the OCL standard library defines a number of template expressions.
Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.
For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.

The Standard Library may be extended with new types, new operations and new iterators.
In particular new operations can be defined for collections.

Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted
in an appropriate fashion.
A locale is defined as a concatenation of up to three character sequences separated by underscores,
with the first sequence identifying the language and the second sequence identifying the country.
The third sequence is empty but may encode an implementation-specific variant.
Trailing empty strings and separators may be omitted.

The character sequences for languages are defined by ISO 639.

The character sequences for countries are defined by ISO 3166.

‘fr_CA’ therefore identifies the locale for the French language in the Canada country.

Comparison of strings and consequently the collation order of Collection::sortedBy()
conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.

The locale is ‘en_us’ by default but may be configured by a property constraint on OclAny::oclLocale.

The prevailing locale is defined by the prevailing value of oclLocale within the current environment;
it may therefore be changed temporarily by using a Let expression.
let oclLocale : String = ‘fr_CA’ in aString.toUpperCase()

heading:1[Iterators]

This sub clause defines the standard OCL iterator expressions.
In the abstract syntax these are all instances of IteratorExp.
These iterator expressions always have a collection expression as their source,
as is defined in the well-formedness rules in Clause 8 (“Abstract Syntax”).
The defined iterator expressions are shown per source collection type.
The semantics of each iterator expression is defined through a mapping from the iterator to the ‘iterate’ construct.
This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.

In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,
and the righthand side of the equals sign is the equivalent as an IterateExp.
The names source, body, and iterator refer to the role names in the abstract syntax:

source	The source expression of the IteratorExp.

body	The body expression of the IteratorExp.

iterator	The iterator variable of the IteratorExp.

result	The result variable of the IterateExp.

heading:2[Extending the Standard Library with Iterator Expressions]

It is possible to add new iterator expressions in the standard library.
If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,
in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24FVoHEeS2WoXr83SnEA" name="Boolean" superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_AT24FloHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24F1oHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_AT24GFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24GVoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24GloHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_AT24G1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24HFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+ <ownedComment xmi:id="_AT24HVoHEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24HloHEeS2WoXr83SnEA" name="and" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isInvalidating="true" isValidating="true" precedence="_AT27mloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24H1oHEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[true]."/>
+ <bodyExpression xmi:id="_AT24IFoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = false then false
+ else self
+ endif endif
+ else if self = false then false
+ else if b.oclIsInvalid() then b
+ else if b = false then false
+ else if self = null then null
+ else if b = null then null
+ else true
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_AT24IVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24IloHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isInvalidating="true" isValidating="true" precedence="_AT27nVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24I1oHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_AT24JFoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = false then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then b
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_AT24JVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24JloHEeS2WoXr83SnEA" name="not" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+ precedence="_AT27lVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24J1oHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].
oclText[false] if oclText[self] is oclText[true].
oclText[null] if oclText[self] is oclText[null].
Otherwise oclText[invalid]."/>
+ <bodyExpression xmi:id="_AT24KFoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if self = null then null
+ else self = false
+ endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24KVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+ isInvalidating="true" isValidating="true" precedence="_AT27m1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24KloHEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_AT24K1oHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = true then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then null
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_AT24LFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24LVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_AT24LloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24L1oHEeS2WoXr83SnEA" name="xor" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+ precedence="_AT27nFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24MFoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].
oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null]."/>
+ <bodyExpression xmi:id="_AT24MVoHEeS2WoXr83SnEA" type="_AT24FVoHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if b.oclIsInvalid() then b
+ else if self = null then null
+ else if b = null then null
+ else self <> b
+ endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_AT24MloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24FloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24GVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24HloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24IFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24IVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24IloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24JFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24JVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24JloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24KFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24KVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24K1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24LFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24L1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_AT24MVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24MloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24ZFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24Z1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24aloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24bVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24cFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24c1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24i1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24jloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24kVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24k1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24lVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24mFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24ploHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24qVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24sloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24v1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24zloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT245loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT249FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT249loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25PVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25QFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25TloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25UVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25YloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25ZVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25d1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25fVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25qFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25rFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25sFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25tFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25uFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_AT25w1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT255VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT256FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT2581oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT259loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25-FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT25_loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26AFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26BloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26E1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26FloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26GVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26HFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26LFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26L1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26NFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26NVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26NloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26N1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26PloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26P1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26RFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26SVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26S1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26TFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26U1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26VVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26V1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26Z1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26aVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26bVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26cloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26dFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26eVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26eloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26e1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26fFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26fVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26floHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26f1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26gFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26mFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26mloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT266loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT267FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT27QVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT27Q1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Function" href="hstmtostm.xml#_AT27oVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="hstmtostm.xml#_AT27pFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27pVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="hstmtostm.xml#_AT27qVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27qloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27rloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:BooleanLiteralExp" href="hstmtostm.xml#_AT27sloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:BooleanLiteralExp" href="hstmtostm.xml#_AT27s1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27uloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="hstmtostm.xml#_AT275VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT276VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT276loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT277VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="hstmtostm.xml#_AT278VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT279VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT279loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="hstmtostm.xml#_AT27-VoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24M1oHEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_AT22kloHEeS2WoXr83SnEA _AT23VVoHEeS2WoXr83SnEA _AT23ploHEeS2WoXr83SnEA"
+ superClass="_AT24VVoHEeS2WoXr83SnEA" typedElement="_AT24NFoHEeS2WoXr83SnEA _AT24N1oHEeS2WoXr83SnEA _AT24OloHEeS2WoXr83SnEA _AT24PFoHEeS2WoXr83SnEA _AT24QloHEeS2WoXr83SnEA _AT24RFoHEeS2WoXr83SnEA _AT24R1oHEeS2WoXr83SnEA _AT24SVoHEeS2WoXr83SnEA _AT24SloHEeS2WoXr83SnEA _AT24TVoHEeS2WoXr83SnEA _AT24UFoHEeS2WoXr83SnEA _AT24UloHEeS2WoXr83SnEA _AT24eFoHEeS2WoXr83SnEA _AT24e1oHEeS2WoXr83SnEA _AT24g1oHEeS2WoXr83SnEA _AT24nVoHEeS2WoXr83SnEA _AT24oFoHEeS2WoXr83SnEA _AT24rFoHEeS2WoXr83SnEA _AT24r1oHEeS2WoXr83SnEA _AT24vVoHEeS2WoXr83SnEA _AT24zFoHEeS2WoXr83SnEA _AT24zVoHEeS2WoXr83SnEA _AT240FoHEeS2WoXr83SnEA _AT25OVoHEeS2WoXr83SnEA _AT25O1oHEeS2WoXr83SnEA _AT25S1oHEeS2WoXr83SnEA _AT25j1oHEeS2WoXr83SnEA _AT26H1oHEeS2WoXr83SnEA _AT26iVoHEeS2WoXr83SnEA _AT26jFoHEeS2WoXr83SnEA _AT26sVoHEeS2WoXr83SnEA _AT26x1oHEeS2WoXr83SnEA _AT26yFoHEeS2WoXr83SnEA _AT27BVoHEeS2WoXr83SnEA _AT27G1oHEeS2WoXr83SnEA _AT27HFoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_AT24NFoHEeS2WoXr83SnEA" name="*" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_AT27lloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24NVoHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+ <ownedParameter xmi:id="_AT24NloHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24N1oHEeS2WoXr83SnEA" name="+" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24OFoHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+ <ownedParameter xmi:id="_AT24OVoHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24OloHEeS2WoXr83SnEA" name="-" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_AT27lVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24O1oHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24PFoHEeS2WoXr83SnEA" name="-" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24PVoHEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+ <ownedParameter xmi:id="_AT24PloHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24P1oHEeS2WoXr83SnEA" name="/" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_AT27lloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24QFoHEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.
Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_AT24QVoHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24QloHEeS2WoXr83SnEA" name="abs" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_AT24Q1oHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24RFoHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_AT24RVoHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_AT24RloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24R1oHEeS2WoXr83SnEA" name="div" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+ <ownedComment xmi:id="_AT24SFoHEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+ <ownedParameter xmi:id="_AT24SVoHEeS2WoXr83SnEA" name="i" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24SloHEeS2WoXr83SnEA" name="max" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_AT24S1oHEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_AT24TFoHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24TVoHEeS2WoXr83SnEA" name="min" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_AT24TloHEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_AT24T1oHEeS2WoXr83SnEA" name="i" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24UFoHEeS2WoXr83SnEA" name="mod" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+ <ownedComment xmi:id="_AT24UVoHEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+ <ownedParameter xmi:id="_AT24UloHEeS2WoXr83SnEA" name="i" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24U1oHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_AT24VFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24VVoHEeS2WoXr83SnEA" name="Real" superClass="_AT26EVoHEeS2WoXr83SnEA _AT26XloHEeS2WoXr83SnEA"
+ typedElement="_AT24P1oHEeS2WoXr83SnEA _AT24VloHEeS2WoXr83SnEA _AT24WVoHEeS2WoXr83SnEA _AT24XFoHEeS2WoXr83SnEA _AT24XloHEeS2WoXr83SnEA _AT24YVoHEeS2WoXr83SnEA _AT24dloHEeS2WoXr83SnEA _AT24fVoHEeS2WoXr83SnEA _AT24gFoHEeS2WoXr83SnEA _AT241loHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_AT24VloHEeS2WoXr83SnEA" name="*" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_AT27lloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24V1oHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+ <ownedParameter xmi:id="_AT24WFoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24WVoHEeS2WoXr83SnEA" name="+" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24WloHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+ <ownedParameter xmi:id="_AT24W1oHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24XFoHEeS2WoXr83SnEA" name="-" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_AT27lVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24XVoHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24XloHEeS2WoXr83SnEA" name="-" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24X1oHEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+ <ownedParameter xmi:id="_AT24YFoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24YVoHEeS2WoXr83SnEA" name="/" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_AT27lloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24YloHEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_AT24Y1oHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24ZFoHEeS2WoXr83SnEA" name="<" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24ZVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+ <ownedParameter xmi:id="_AT24ZloHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24Z1oHEeS2WoXr83SnEA" name="<=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24aFoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+ <ownedParameter xmi:id="_AT24aVoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24aloHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24a1oHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_AT24bFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24bVoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24bloHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_AT24b1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24cFoHEeS2WoXr83SnEA" name=">" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24cVoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+ <ownedParameter xmi:id="_AT24cloHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24c1oHEeS2WoXr83SnEA" name=">=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24dFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+ <ownedParameter xmi:id="_AT24dVoHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24dloHEeS2WoXr83SnEA" name="abs" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_AT24d1oHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24eFoHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_AT24eVoHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_AT24eloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24e1oHEeS2WoXr83SnEA" name="floor" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+ <ownedComment xmi:id="_AT24fFoHEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24fVoHEeS2WoXr83SnEA" name="max" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_AT24floHEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_AT24f1oHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24gFoHEeS2WoXr83SnEA" name="min" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_AT24gVoHEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_AT24gloHEeS2WoXr83SnEA" name="r" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24g1oHEeS2WoXr83SnEA" name="round" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+ <ownedComment xmi:id="_AT24hFoHEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24hVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_AT24hloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT24h1oHEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_AT22lVoHEeS2WoXr83SnEA _AT23WFoHEeS2WoXr83SnEA _AT23qVoHEeS2WoXr83SnEA"
+ superClass="_AT26EVoHEeS2WoXr83SnEA _AT26XloHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_AT24iFoHEeS2WoXr83SnEA" name="+" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24iVoHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_AT24iloHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24i1oHEeS2WoXr83SnEA" name="<" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24jFoHEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_AT24jVoHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24jloHEeS2WoXr83SnEA" name="<=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24j1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_AT24kFoHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24kVoHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT24kloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24k1oHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT24lFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24lVoHEeS2WoXr83SnEA" name=">" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24lloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_AT24l1oHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24mFoHEeS2WoXr83SnEA" name=">=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT24mVoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_AT24mloHEeS2WoXr83SnEA" name="s" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24m1oHEeS2WoXr83SnEA" name="at" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT24nFoHEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+ <ownedParameter xmi:id="_AT24nVoHEeS2WoXr83SnEA" name="i" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24nloHEeS2WoXr83SnEA" name="characters" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+ <ownedComment xmi:id="_AT24n1oHEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24oFoHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+ <ownedComment xmi:id="_AT24oVoHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_AT24oloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24o1oHEeS2WoXr83SnEA" name="concat" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+ <ownedComment xmi:id="_AT24pFoHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_AT24pVoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24ploHEeS2WoXr83SnEA" name="endsWith" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+ <ownedComment xmi:id="_AT24p1oHEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.
Every string ends with the empty string."/>
+ <ownedParameter xmi:id="_AT24qFoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24qVoHEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+ <ownedComment xmi:id="_AT24qloHEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+ <ownedParameter xmi:id="_AT24q1oHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24rFoHEeS2WoXr83SnEA" name="indexOf" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+ <ownedComment xmi:id="_AT24rVoHEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_AT24rloHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24r1oHEeS2WoXr83SnEA" name="lastIndexOf" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+ <ownedComment xmi:id="_AT24sFoHEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_AT24sVoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24sloHEeS2WoXr83SnEA" name="matches" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+ <ownedComment xmi:id="_AT24s1oHEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+ <ownedParameter xmi:id="_AT24tFoHEeS2WoXr83SnEA" name="regex" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24tVoHEeS2WoXr83SnEA" name="replaceAll" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT24tloHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+ <ownedParameter xmi:id="_AT24t1oHEeS2WoXr83SnEA" name="regex" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT24uFoHEeS2WoXr83SnEA" name="replacement" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24uVoHEeS2WoXr83SnEA" name="replaceFirst" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT24uloHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+ <ownedParameter xmi:id="_AT24u1oHEeS2WoXr83SnEA" name="regex" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT24vFoHEeS2WoXr83SnEA" name="replacement" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24vVoHEeS2WoXr83SnEA" name="size" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+ <ownedComment xmi:id="_AT24vloHEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24v1oHEeS2WoXr83SnEA" name="startsWith" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+ <ownedComment xmi:id="_AT24wFoHEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.
Every string starts with the empty string."/>
+ <ownedParameter xmi:id="_AT24wVoHEeS2WoXr83SnEA" name="s" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24wloHEeS2WoXr83SnEA" name="substituteAll" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+ <ownedComment xmi:id="_AT24w1oHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+ <ownedParameter xmi:id="_AT24xFoHEeS2WoXr83SnEA" name="oldSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT24xVoHEeS2WoXr83SnEA" name="newSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24xloHEeS2WoXr83SnEA" name="substituteFirst" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+ <ownedComment xmi:id="_AT24x1oHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.
Returns invalid if there is no first occurrence."/>
+ <ownedParameter xmi:id="_AT24yFoHEeS2WoXr83SnEA" name="oldSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT24yVoHEeS2WoXr83SnEA" name="newSubstring" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24yloHEeS2WoXr83SnEA" name="substring" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT24y1oHEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+ <ownedParameter xmi:id="_AT24zFoHEeS2WoXr83SnEA" name="lower" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT24zVoHEeS2WoXr83SnEA" name="upper" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24zloHEeS2WoXr83SnEA" name="toBoolean" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT24z1oHEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT240FoHEeS2WoXr83SnEA" name="toInteger" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT240VoHEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT240loHEeS2WoXr83SnEA" name="toLower" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_AT2401oHEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT241FoHEeS2WoXr83SnEA" name="toLowerCase" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_AT241VoHEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT241loHEeS2WoXr83SnEA" name="toReal" type="_AT24VVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT2411oHEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT242FoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_AT242VoHEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT242loHEeS2WoXr83SnEA" name="toUpper" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_AT2421oHEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT243FoHEeS2WoXr83SnEA" name="toUpperCase" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_AT243VoHEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT243loHEeS2WoXr83SnEA" name="tokenize" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_AT2431oHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.
The delimiters are omitted from the return."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT244FoHEeS2WoXr83SnEA" name="tokenize" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_AT244VoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+ <ownedParameter xmi:id="_AT244loHEeS2WoXr83SnEA" name="delimiters" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT2441oHEeS2WoXr83SnEA" name="tokenize" type="_AT23p1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_AT245FoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is
true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+ <ownedParameter xmi:id="_AT245VoHEeS2WoXr83SnEA" name="delimiters" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT245loHEeS2WoXr83SnEA" name="returnDelimiters" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT2451oHEeS2WoXr83SnEA" name="trim" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+ <ownedComment xmi:id="_AT246FoHEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24LVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24U1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24hVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24iFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24iloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24m1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24o1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24pVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24qFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24q1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24rloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24sVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24tFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24tVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24t1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24uFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24uVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24u1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24vFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24wVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24wloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24xFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24xVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24xloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24yFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT24yVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT24yloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT240loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT241FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT242FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT242loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT243FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT244loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT245VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT2451oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_AT26DFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26D1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26TVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_AT26gVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27vloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27w1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT27xFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27zloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2711oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT272loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="hstmMM.xml#_AT28E1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="hstmMM.xml#_AT28GFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="hstmMM.xml#_AT28HloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="stmMM.xml#_AT28NloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="stmMM.xml#_AT28O1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="stmMM.xml#_AT28QVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_AT246VoHEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_AT24M1oHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_AT246loHEeS2WoXr83SnEA" name="oclAsType" type="_AT247loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+ <ownedComment xmi:id="_AT2461oHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to
Real or Integer, but the e[unlimited] value may not.
Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+ <ownedTemplateSignature xmi:id="_AT247FoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT247VoHEeS2WoXr83SnEA" parameteredElement="_AT247loHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT247loHEeS2WoXr83SnEA" name="TT" templateParameter="_AT247VoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23GVoHEeS2WoXr83SnEA" typedElement="_AT246loHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT2471oHEeS2WoXr83SnEA" name="type" type="_AT23F1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_AT248FoHEeS2WoXr83SnEA" name="Bag" superClass="_AT22qFoHEeS2WoXr83SnEA" typedElement="_AT24-VoHEeS2WoXr83SnEA _AT24_FoHEeS2WoXr83SnEA _AT25BFoHEeS2WoXr83SnEA _AT25B1oHEeS2WoXr83SnEA _AT25JVoHEeS2WoXr83SnEA _AT25KVoHEeS2WoXr83SnEA"
+ elementType="_AT2481oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT248VoHEeS2WoXr83SnEA" templateBinding="_AT22cFoHEeS2WoXr83SnEA _AT22c1oHEeS2WoXr83SnEA _AT22dloHEeS2WoXr83SnEA _AT22eVoHEeS2WoXr83SnEA _AT22fFoHEeS2WoXr83SnEA _AT22f1oHEeS2WoXr83SnEA _AT22gloHEeS2WoXr83SnEA _AT22hVoHEeS2WoXr83SnEA _AT22iFoHEeS2WoXr83SnEA _AT22i1oHEeS2WoXr83SnEA _AT22jloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT248loHEeS2WoXr83SnEA" parameteredElement="_AT2481oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22cVoHEeS2WoXr83SnEA _AT22dFoHEeS2WoXr83SnEA _AT22d1oHEeS2WoXr83SnEA _AT22eloHEeS2WoXr83SnEA _AT22fVoHEeS2WoXr83SnEA _AT22gFoHEeS2WoXr83SnEA _AT22g1oHEeS2WoXr83SnEA _AT22hloHEeS2WoXr83SnEA _AT22iVoHEeS2WoXr83SnEA _AT22jFoHEeS2WoXr83SnEA _AT22j1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT2481oHEeS2WoXr83SnEA" name="T" templateParameter="_AT248loHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22qloHEeS2WoXr83SnEA _AT23W1oHEeS2WoXr83SnEA _AT23rFoHEeS2WoXr83SnEA _AT23yloHEeS2WoXr83SnEA _AT235VoHEeS2WoXr83SnEA"
+ typedElement="_AT25BloHEeS2WoXr83SnEA _AT25F1oHEeS2WoXr83SnEA _AT25HloHEeS2WoXr83SnEA _AT25JFoHEeS2WoXr83SnEA _AT25KFoHEeS2WoXr83SnEA _AT25LFoHEeS2WoXr83SnEA _AT25MFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_AT249FoHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT249VoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT249loHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT2491oHEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+ <ownedParameter xmi:id="_AT24-FoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24-VoHEeS2WoXr83SnEA" name="excluding" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_AT24-loHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+ <ownedParameter xmi:id="_AT24-1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24_FoHEeS2WoXr83SnEA" name="excludingAll" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_AT24_VoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_AT24_loHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT24_1oHEeS2WoXr83SnEA" name="flatten" type="_AT22dVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_AT25AFoHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].
If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_AT25AVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25AloHEeS2WoXr83SnEA" parameteredElement="_AT25A1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25A1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25AloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22d1oHEeS2WoXr83SnEA _AT22oVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25BFoHEeS2WoXr83SnEA" name="including" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_AT25BVoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_AT25BloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25B1oHEeS2WoXr83SnEA" name="includingAll" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_AT25CFoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_AT25CVoHEeS2WoXr83SnEA" name="objects" type="_AT22qFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25CloHEeS2WoXr83SnEA" name="selectByKind" type="_AT22eFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_AT25C1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25DFoHEeS2WoXr83SnEA" parameteredElement="_AT25DVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25DVoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25DFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22eloHEeS2WoXr83SnEA _AT22pFoHEeS2WoXr83SnEA _AT23HFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25DloHEeS2WoXr83SnEA" name="type" type="_AT23GloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25D1oHEeS2WoXr83SnEA" name="selectByType" type="_AT22e1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_AT25EFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25EVoHEeS2WoXr83SnEA" parameteredElement="_AT25EloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25EloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25EVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22fVoHEeS2WoXr83SnEA _AT22p1oHEeS2WoXr83SnEA _AT23H1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25E1oHEeS2WoXr83SnEA" name="type" type="_AT23HVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25FFoHEeS2WoXr83SnEA" name="closure" type="_AT23yFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_AT25FVoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_AT25FloHEeS2WoXr83SnEA" name="lambda" type="_AT22VloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25F1oHEeS2WoXr83SnEA" name="i" type="_AT2481oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25GFoHEeS2WoXr83SnEA" name="collectNested" type="_AT22b1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_AT25GVoHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_AT25GloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25G1oHEeS2WoXr83SnEA" parameteredElement="_AT25HFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25HFoHEeS2WoXr83SnEA" name="V" templateParameter="_AT25G1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22cVoHEeS2WoXr83SnEA _AT22m1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25HVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22U1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25HloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25H1oHEeS2WoXr83SnEA" name="collect" type="_AT22cloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_AT25IFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25IVoHEeS2WoXr83SnEA" parameteredElement="_AT25IloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25IloHEeS2WoXr83SnEA" name="V" templateParameter="_AT25IVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22dFoHEeS2WoXr83SnEA _AT22nloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25I1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22VFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25JFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25JVoHEeS2WoXr83SnEA" name="reject" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_AT25JloHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].

oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+ <ownedParameter xmi:id="_AT25J1oHEeS2WoXr83SnEA" name="lambda" type="_AT22UloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25KFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25KVoHEeS2WoXr83SnEA" name="select" type="_AT248FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_AT25KloHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].

oclCode[self->select(iterator | body) =
self->iterate(iterator; result : Bag(T) = Bag{} |
if body then result->including(iterator)
else result
endif)]"/>
+ <ownedParameter xmi:id="_AT25K1oHEeS2WoXr83SnEA" name="lambda" type="_AT22UloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25LFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25LVoHEeS2WoXr83SnEA" name="sortedBy" type="_AT23qloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_AT25LloHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_AT25L1oHEeS2WoXr83SnEA" name="lambda" type="_AT22VVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25MFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT2481oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT25MVoHEeS2WoXr83SnEA" name="Class" superClass="_AT2541oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT25MloHEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_AT22g1oHEeS2WoXr83SnEA _AT22yFoHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT25V1oHEeS2WoXr83SnEA _AT25WloHEeS2WoXr83SnEA _AT25a1oHEeS2WoXr83SnEA _AT25bloHEeS2WoXr83SnEA _AT25cFoHEeS2WoXr83SnEA _AT25c1oHEeS2WoXr83SnEA _AT25lVoHEeS2WoXr83SnEA _AT25x1oHEeS2WoXr83SnEA _AT25y1oHEeS2WoXr83SnEA"
+ elementType="_AT25NVoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT25M1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25NFoHEeS2WoXr83SnEA" parameteredElement="_AT25NVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25NVoHEeS2WoXr83SnEA" name="T" templateParameter="_AT25NFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22gFoHEeS2WoXr83SnEA _AT22xVoHEeS2WoXr83SnEA _AT23XloHEeS2WoXr83SnEA _AT23jloHEeS2WoXr83SnEA _AT23r1oHEeS2WoXr83SnEA _AT23zVoHEeS2WoXr83SnEA _AT236FoHEeS2WoXr83SnEA"
+ typedElement="_AT22bVoHEeS2WoXr83SnEA _AT25N1oHEeS2WoXr83SnEA _AT25bVoHEeS2WoXr83SnEA _AT25eVoHEeS2WoXr83SnEA _AT25e1oHEeS2WoXr83SnEA _AT25kVoHEeS2WoXr83SnEA _AT25lloHEeS2WoXr83SnEA _AT25mVoHEeS2WoXr83SnEA _AT25oFoHEeS2WoXr83SnEA _AT25p1oHEeS2WoXr83SnEA _AT25qloHEeS2WoXr83SnEA _AT25q1oHEeS2WoXr83SnEA _AT25r1oHEeS2WoXr83SnEA _AT25sloHEeS2WoXr83SnEA _AT25s1oHEeS2WoXr83SnEA _AT25t1oHEeS2WoXr83SnEA _AT25u1oHEeS2WoXr83SnEA _AT25wloHEeS2WoXr83SnEA _AT25xloHEeS2WoXr83SnEA _AT25yloHEeS2WoXr83SnEA _AT25zloHEeS2WoXr83SnEA _AT250loHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT25NloHEeS2WoXr83SnEA" name="Collection" type="_AT22gVoHEeS2WoXr83SnEA" implicit="true" opposite="_AT25N1oHEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ <templateParameterSubstitution href="#_AT22kloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22lVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22mFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22m1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22nloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22oVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22pFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22p1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22qloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22rVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22sFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22s1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22tloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22uVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22vFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22v1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22wloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22xVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22yFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22y1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22zloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT220VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT221FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT2211oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT222loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT223VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT224FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT2241oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT225loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT226VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT227FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT2271oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT228loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT229VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22-FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22-1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT22_loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23AVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23BFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23B1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23CloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23DVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23EFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23E1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23FloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmtostm.xml#_AT28A1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmMM.xml#_AT28IloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmMM.xml#_AT28JVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="stmMM.xml#_AT28RVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="stmMM.xml#_AT28SFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#_AT22kVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22lFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22l1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22mloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22nVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22oFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22o1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22ploHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22qVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22rFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22r1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22sloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22tVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22uFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22u1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22vloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22wVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22xFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22x1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22yloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22zVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT220FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT2201oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT221loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT222VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT223FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT2231oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT224loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT225VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT226FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT2261oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT227loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT228VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT229FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT2291oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22-loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT22_VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23AFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23A1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23BloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23CVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23DFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23D1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23EloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23FVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmtostm.xml#_AT28AloHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmMM.xml#_AT28IVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmMM.xml#_AT28JFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="stmMM.xml#_AT28RFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="stmMM.xml#_AT28R1oHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_AT25N1oHEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+ opposite="_AT25NloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT25OFoHEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT25OVoHEeS2WoXr83SnEA" isStatic="true" name="lower" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+ <ownedComment xmi:id="_AT25OloHEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT25O1oHEeS2WoXr83SnEA" isStatic="true" name="upper" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+ <ownedComment xmi:id="_AT25PFoHEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_AT25PVoHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT25PloHEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+ <ownedParameter xmi:id="_AT25P1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25QFoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT25QVoHEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,
in the case of an ordered collection type."/>
+ <ownedParameter xmi:id="_AT25QloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25Q1oHEeS2WoXr83SnEA" name="asBag" type="_AT22floHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+ <ownedComment xmi:id="_AT25RFoHEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25RVoHEeS2WoXr83SnEA" name="asOrderedSet" type="_AT23jFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+ <ownedComment xmi:id="_AT25RloHEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,
in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25R1oHEeS2WoXr83SnEA" name="asSequence" type="_AT23rVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+ <ownedComment xmi:id="_AT25SFoHEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25SVoHEeS2WoXr83SnEA" name="asSet" type="_AT23y1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+ <ownedComment xmi:id="_AT25SloHEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25S1oHEeS2WoXr83SnEA" name="count" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+ <ownedComment xmi:id="_AT25TFoHEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+ <ownedParameter xmi:id="_AT25TVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25TloHEeS2WoXr83SnEA" name="excludes" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+ <ownedComment xmi:id="_AT25T1oHEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_AT25UFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25UVoHEeS2WoXr83SnEA" name="excludesAll" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+ <ownedComment xmi:id="_AT25UloHEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_AT25U1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25VFoHEeS2WoXr83SnEA" parameteredElement="_AT25VVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25VVoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25VFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22s1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25VloHEeS2WoXr83SnEA" name="c2" type="_AT22sVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25V1oHEeS2WoXr83SnEA" name="excluding" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_AT25WFoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+ <ownedParameter xmi:id="_AT25WVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25WloHEeS2WoXr83SnEA" name="excludingAll" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_AT25W1oHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_AT25XFoHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25XVoHEeS2WoXr83SnEA" name="flatten" type="_AT22tFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_AT25XloHEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].
If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_AT25X1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25YFoHEeS2WoXr83SnEA" parameteredElement="_AT25YVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25YVoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25YFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22tloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25YloHEeS2WoXr83SnEA" name="includes" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+ <ownedComment xmi:id="_AT25Y1oHEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_AT25ZFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25ZVoHEeS2WoXr83SnEA" name="includesAll" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+ <ownedComment xmi:id="_AT25ZloHEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_AT25Z1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25aFoHEeS2WoXr83SnEA" parameteredElement="_AT25aVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25aVoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25aFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22uVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25aloHEeS2WoXr83SnEA" name="c2" type="_AT22t1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25a1oHEeS2WoXr83SnEA" name="including" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_AT25bFoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_AT25bVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25bloHEeS2WoXr83SnEA" name="includingAll" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_AT25b1oHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_AT25cFoHEeS2WoXr83SnEA" name="objects" type="_AT25MloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25cVoHEeS2WoXr83SnEA" name="intersection" type="_AT22floHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_AT25cloHEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+ <ownedParameter xmi:id="_AT25c1oHEeS2WoXr83SnEA" name="c" type="_AT25MloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25dFoHEeS2WoXr83SnEA" name="intersection" type="_AT23y1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_AT25dVoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+ <ownedParameter xmi:id="_AT25dloHEeS2WoXr83SnEA" name="u" type="_AT235loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25d1oHEeS2WoXr83SnEA" name="isEmpty" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+ <ownedComment xmi:id="_AT25eFoHEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?

Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25eVoHEeS2WoXr83SnEA" name="max" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+ <ownedComment xmi:id="_AT25eloHEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].
Elements must be of a type supporting the max operation.
The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25e1oHEeS2WoXr83SnEA" name="min" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+ <ownedComment xmi:id="_AT25fFoHEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].
Elements must be of a type supporting the min operation.
The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25fVoHEeS2WoXr83SnEA" name="notEmpty" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+ <ownedComment xmi:id="_AT25floHEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?

oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25f1oHEeS2WoXr83SnEA" name="product" type="_AT23xVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+ <ownedComment xmi:id="_AT25gFoHEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+ <ownedTemplateSignature xmi:id="_AT25gVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25gloHEeS2WoXr83SnEA" parameteredElement="_AT25g1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25g1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT25gloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22vFoHEeS2WoXr83SnEA" typedElement="_AT22bloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25hFoHEeS2WoXr83SnEA" name="c2" type="_AT22uloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25hVoHEeS2WoXr83SnEA" name="selectByKind" type="_AT22vVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_AT25hloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25h1oHEeS2WoXr83SnEA" parameteredElement="_AT25iFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25iFoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25h1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22v1oHEeS2WoXr83SnEA _AT23IloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25iVoHEeS2WoXr83SnEA" name="type" type="_AT23IFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25iloHEeS2WoXr83SnEA" name="selectByType" type="_AT22wFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_AT25i1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25jFoHEeS2WoXr83SnEA" parameteredElement="_AT25jVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25jVoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT25jFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22wloHEeS2WoXr83SnEA _AT23JVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25jloHEeS2WoXr83SnEA" name="type" type="_AT23I1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25j1oHEeS2WoXr83SnEA" name="size" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+ <ownedComment xmi:id="_AT25kFoHEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25kVoHEeS2WoXr83SnEA" name="sum" type="_AT25NVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+ <ownedComment xmi:id="_AT25kloHEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].
Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.
The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).
UnlimitedNatural, Integer and Real fulfill this condition.

If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,
which may result in unpredictable results during evaluation.
If an implementation is able to detect a lack of associativity or commutativity,
the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25k1oHEeS2WoXr83SnEA" name="union" type="_AT22floHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_AT25lFoHEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+ <ownedParameter xmi:id="_AT25lVoHEeS2WoXr83SnEA" name="c" type="_AT25MloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25lloHEeS2WoXr83SnEA" name="any" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+ <ownedComment xmi:id="_AT25l1oHEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].
If there is more than one element for which body is oclText[true], one of them is returned.
There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+ <ownedParameter xmi:id="_AT25mFoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25mVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25mloHEeS2WoXr83SnEA" name="collectNested" type="_AT22q1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_AT25m1oHEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+ <ownedTemplateSignature xmi:id="_AT25nFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25nVoHEeS2WoXr83SnEA" parameteredElement="_AT25nloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25nloHEeS2WoXr83SnEA" name="V" templateParameter="_AT25nVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22rVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25n1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22WFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25oFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25oVoHEeS2WoXr83SnEA" name="collect" type="_AT22rloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedComment xmi:id="_AT25oloHEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.
The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.
collectNested is defined individually for each subclass of CollectionType."/>
+ <ownedTemplateSignature xmi:id="_AT25o1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25pFoHEeS2WoXr83SnEA" parameteredElement="_AT25pVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25pVoHEeS2WoXr83SnEA" name="V" templateParameter="_AT25pFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22sFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25ploHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22WVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25p1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25qFoHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedParameter xmi:id="_AT25qVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25qloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25q1oHEeS2WoXr83SnEA" name="j" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25rFoHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedComment xmi:id="_AT25rVoHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+ <ownedParameter xmi:id="_AT25rloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25r1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25sFoHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedParameter xmi:id="_AT25sVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25sloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25s1oHEeS2WoXr83SnEA" name="j" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25tFoHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedComment xmi:id="_AT25tVoHEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_AT25tloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25t1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25uFoHEeS2WoXr83SnEA" name="isUnique" type="_AT24FVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+ <ownedComment xmi:id="_AT25uVoHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_AT25uloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22W1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25u1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25vFoHEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_AT25v1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+ <ownedTemplateSignature xmi:id="_AT25vVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25vloHEeS2WoXr83SnEA" parameteredElement="_AT25v1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25v1oHEeS2WoXr83SnEA" name="Tacc" templateParameter="_AT25vloHEeS2WoXr83SnEA"
+ typedElement="_AT25vFoHEeS2WoXr83SnEA _AT25wVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25wFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22WloHEeS2WoXr83SnEA"/>
+ <ownedAccumulator xmi:id="_AT25wVoHEeS2WoXr83SnEA" name="acc" isRequired="false" type="_AT25v1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25wloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25w1oHEeS2WoXr83SnEA" name="one" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+ <ownedComment xmi:id="_AT25xFoHEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_AT25xVoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25xloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25x1oHEeS2WoXr83SnEA" name="reject" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_AT25yFoHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_AT25yVoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25yloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25y1oHEeS2WoXr83SnEA" name="select" type="_AT25MloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_AT25zFoHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_AT25zVoHEeS2WoXr83SnEA" name="lambda" type="_AT22V1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT25zloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT25z1oHEeS2WoXr83SnEA" name="sortedBy" type="_AT23rVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_AT250FoHEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_AT250VoHEeS2WoXr83SnEA" name="lambda" type="_AT22W1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT250loHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT25NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT2501oHEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_AT22hloHEeS2WoXr83SnEA _AT22zloHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT251FoHEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+ <ownedAttribute xmi:id="_AT251VoHEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_AT23j1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+ opposite="_AT2521oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT251loHEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_AT2511oHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+ <ownedComment xmi:id="_AT252FoHEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT252VoHEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_AT22y1oHEeS2WoXr83SnEA _AT23YVoHEeS2WoXr83SnEA _AT23kVoHEeS2WoXr83SnEA _AT2361oHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT252loHEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+ <ownedAttribute xmi:id="_AT2521oHEeS2WoXr83SnEA" name="Enumeration" type="_AT22hFoHEeS2WoXr83SnEA" implicit="true" opposite="_AT251VoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_AT253FoHEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_AT22iVoHEeS2WoXr83SnEA _AT220VoHEeS2WoXr83SnEA"
+ superClass="_AT25MVoHEeS2WoXr83SnEA _AT26a1oHEeS2WoXr83SnEA" instanceType="_AT2531oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT253VoHEeS2WoXr83SnEA" templateBinding="_AT23GFoHEeS2WoXr83SnEA _AT23G1oHEeS2WoXr83SnEA _AT23HloHEeS2WoXr83SnEA _AT23IVoHEeS2WoXr83SnEA _AT23JFoHEeS2WoXr83SnEA _AT23J1oHEeS2WoXr83SnEA _AT23KloHEeS2WoXr83SnEA _AT23LVoHEeS2WoXr83SnEA _AT23MFoHEeS2WoXr83SnEA _AT23M1oHEeS2WoXr83SnEA _AT23NloHEeS2WoXr83SnEA _AT23OVoHEeS2WoXr83SnEA _AT23PFoHEeS2WoXr83SnEA _AT23P1oHEeS2WoXr83SnEA _AT23QloHEeS2WoXr83SnEA _AT23RVoHEeS2WoXr83SnEA _AT23SFoHEeS2WoXr83SnEA _AT23S1oHEeS2WoXr83SnEA _AT23TloHEeS2WoXr83SnEA _AT23UVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT253loHEeS2WoXr83SnEA" parameteredElement="_AT2531oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23GVoHEeS2WoXr83SnEA _AT23HFoHEeS2WoXr83SnEA _AT23H1oHEeS2WoXr83SnEA _AT23IloHEeS2WoXr83SnEA _AT23JVoHEeS2WoXr83SnEA _AT23KFoHEeS2WoXr83SnEA _AT23K1oHEeS2WoXr83SnEA _AT23LloHEeS2WoXr83SnEA _AT23MVoHEeS2WoXr83SnEA _AT23NFoHEeS2WoXr83SnEA _AT23N1oHEeS2WoXr83SnEA _AT23OloHEeS2WoXr83SnEA _AT23PVoHEeS2WoXr83SnEA _AT23QFoHEeS2WoXr83SnEA _AT23Q1oHEeS2WoXr83SnEA _AT23RloHEeS2WoXr83SnEA _AT23SVoHEeS2WoXr83SnEA _AT23TFoHEeS2WoXr83SnEA _AT23T1oHEeS2WoXr83SnEA _AT23UloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT2531oHEeS2WoXr83SnEA" name="T" templateParameter="_AT253loHEeS2WoXr83SnEA"
+ typedElement="_AT254VoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT254FoHEeS2WoXr83SnEA" name="Metaclass" type="_AT22h1oHEeS2WoXr83SnEA" implicit="true" opposite="_AT254VoHEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_AT254VoHEeS2WoXr83SnEA" name="instanceType" type="_AT2531oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+ opposite="_AT254FoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT254loHEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+ </ownedAttribute>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_AT2541oHEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_AT221FoHEeS2WoXr83SnEA _AT237loHEeS2WoXr83SnEA"
+ typedElement="_AT24-1oHEeS2WoXr83SnEA _AT25TVoHEeS2WoXr83SnEA _AT25UFoHEeS2WoXr83SnEA _AT25WVoHEeS2WoXr83SnEA _AT25ZFoHEeS2WoXr83SnEA _AT26WVoHEeS2WoXr83SnEA _AT26jloHEeS2WoXr83SnEA _AT26pFoHEeS2WoXr83SnEA _AT2691oHEeS2WoXr83SnEA _AT27SFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT255FoHEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.
Conceptually, OclAny behaves as a supertype for all the types.
Features of OclAny are available on each object in all OCL expressions.
OclAny is itself an instance of the metatype AnyType.

All classes in a UML model inherit all operations defined on OclAny.
To avoid name conflicts between properties in the model and the properties inherited from OclAny,
all names on the properties of OclAny start with ‘ocl.’
Although theoretically there may still be name conflicts, they can be avoided.
One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.

Operations of OclAny, where the instance of OclAny is called object."/>
+ <ownedOperation xmi:id="_AT255VoHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT255loHEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+ <ownedParameter xmi:id="_AT2551oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT256FoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT256VoHEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+ <ownedParameter xmi:id="_AT256loHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT2561oHEeS2WoXr83SnEA" name="oclAsSet" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+ <ownedComment xmi:id="_AT257FoHEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT257VoHEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_AT258VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedComment xmi:id="_AT257loHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

In the case of feature redefinition, casting an object to a supertype of its actual type
does not access the supertype’s definition of the feature;
according to the semantics of redefinition, the redefined feature simply does not exist for the object.
However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+ <ownedTemplateSignature xmi:id="_AT2571oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT258FoHEeS2WoXr83SnEA" parameteredElement="_AT258VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT258VoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT258FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23KFoHEeS2WoXr83SnEA" typedElement="_AT257VoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT258loHEeS2WoXr83SnEA" name="type" type="_AT23JloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT2581oHEeS2WoXr83SnEA" name="oclIsInState" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+ <ownedComment xmi:id="_AT259FoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+ <ownedParameter xmi:id="_AT259VoHEeS2WoXr83SnEA" name="statespec" type="_AT26XVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT259loHEeS2WoXr83SnEA" name="oclIsInvalid" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_AT2591oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25-FoHEeS2WoXr83SnEA" name="oclIsKindOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedComment xmi:id="_AT25-VoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.
That is, oclText[self] is of type t or a subtype of t."/>
+ <ownedTemplateSignature xmi:id="_AT25-loHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT25-1oHEeS2WoXr83SnEA" parameteredElement="_AT25_FoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT25_FoHEeS2WoXr83SnEA" name="T" templateParameter="_AT25-1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23K1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT25_VoHEeS2WoXr83SnEA" name="type" type="_AT23KVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT25_loHEeS2WoXr83SnEA" name="oclIsNew" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_AT25_1oHEeS2WoXr83SnEA" body="Can only be used in a postcondition.
Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn’t exist at precondition time)."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26AFoHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedComment xmi:id="_AT26AVoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+ <ownedTemplateSignature xmi:id="_AT26AloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26A1oHEeS2WoXr83SnEA" parameteredElement="_AT26BFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26BFoHEeS2WoXr83SnEA" name="T" templateParameter="_AT26A1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23LloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT26BVoHEeS2WoXr83SnEA" name="type" type="_AT23LFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26BloHEeS2WoXr83SnEA" name="oclIsUndefined" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_AT26B1oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26CFoHEeS2WoXr83SnEA" name="oclLog" type="_AT26W1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_AT26CVoHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26CloHEeS2WoXr83SnEA" name="oclLog" type="_AT26W1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_AT26C1oHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+ <ownedParameter xmi:id="_AT26DFoHEeS2WoXr83SnEA" name="message" type="_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26DVoHEeS2WoXr83SnEA" name="oclType" type="_AT23O1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+ <ownedComment xmi:id="_AT26DloHEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26D1oHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_AT26EFoHEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26EVoHEeS2WoXr83SnEA" name="OclComparable" superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26EloHEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived
compareTo implementation may be sorted."/>
+ <ownedOperation xmi:id="_AT26E1oHEeS2WoXr83SnEA" name="<" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26FFoHEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+ <ownedParameter xmi:id="_AT26FVoHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26FloHEeS2WoXr83SnEA" name="<=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26F1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_AT26GFoHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26GVoHEeS2WoXr83SnEA" name=">" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26GloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+ <ownedParameter xmi:id="_AT26G1oHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26HFoHEeS2WoXr83SnEA" name=">=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+ precedence="_AT27mFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26HVoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_AT26HloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26H1oHEeS2WoXr83SnEA" name="compareTo" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+ <ownedComment xmi:id="_AT26IFoHEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.

The compareTo operation should be commutative."/>
+ <ownedParameter xmi:id="_AT26IVoHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26IloHEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_AT2211oHEeS2WoXr83SnEA _AT230FoHEeS2WoXr83SnEA _AT238VoHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT26JloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26I1oHEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined
for OclElement are therefore applicable to all user-defined types."/>
+ <ownedOperation xmi:id="_AT26JFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+ <ownedComment xmi:id="_AT26JVoHEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26JloHEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_AT26IloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+ <ownedComment xmi:id="_AT26J1oHEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26KFoHEeS2WoXr83SnEA" name="oclContents" type="_AT23zloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+ <ownedComment xmi:id="_AT26KVoHEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_AT26KloHEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_AT23OloHEeS2WoXr83SnEA"
+ superClass="_AT26cFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26K1oHEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.
It has one single instance, identified as oclText[invalid].
Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().
OclInvalid is itself an instance of the metatype InvalidType."/>
+ <ownedOperation xmi:id="_AT26LFoHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26LVoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_AT26LloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26L1oHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26MFoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_AT26MVoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26MloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+ <ownedComment xmi:id="_AT26M1oHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26NFoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_AT27mloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26NVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26NloHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isValidating="true" precedence="_AT27nVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26N1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26OFoHEeS2WoXr83SnEA" name="oclAsSet" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+ <ownedOperation xmi:id="_AT26OVoHEeS2WoXr83SnEA" name="oclAsType" type="_AT26PFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedTemplateSignature xmi:id="_AT26OloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26O1oHEeS2WoXr83SnEA" parameteredElement="_AT26PFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26PFoHEeS2WoXr83SnEA" name="TT" templateParameter="_AT26O1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23MVoHEeS2WoXr83SnEA" typedElement="_AT26OVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT26PVoHEeS2WoXr83SnEA" name="type" type="_AT23L1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26PloHEeS2WoXr83SnEA" name="oclIsInvalid" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_AT26P1oHEeS2WoXr83SnEA" name="oclIsKindOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedTemplateSignature xmi:id="_AT26QFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26QVoHEeS2WoXr83SnEA" parameteredElement="_AT26QloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26QloHEeS2WoXr83SnEA" name="T" templateParameter="_AT26QVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23NFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT26Q1oHEeS2WoXr83SnEA" name="type" type="_AT23MloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26RFoHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedTemplateSignature xmi:id="_AT26RVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26RloHEeS2WoXr83SnEA" parameteredElement="_AT26R1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26R1oHEeS2WoXr83SnEA" name="T" templateParameter="_AT26RloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23N1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT26SFoHEeS2WoXr83SnEA" name="type" type="_AT23NVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26SVoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_AT26SloHEeS2WoXr83SnEA" name="oclType" type="_AT23O1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+ <ownedOperation xmi:id="_AT26S1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_AT27m1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26TFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26TVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_AT26TloHEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26T1oHEeS2WoXr83SnEA" name="OclLambda" superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26UFoHEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda
therefore apply to all lambda expressions."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26UVoHEeS2WoXr83SnEA" name="OclMessage" superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26UloHEeS2WoXr83SnEA" body="OclMessage
This sub clause contains the definition of the standard type OclMessage.
As defined in this sub clause, each ocl message type is actually a template type with one parameter.
‘T’ denotes the parameter.
A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType.
Every OclMessage is fully determined by either the operation, or signal given as parameter.
Note that there is conceptually an undefined (infinite) number of these types,
as each is determined by a different operation or signal.
These types are unnamed. Every type has as attributes the name of the operation or signal,
and either all formal parameters of the operation, or all attributes of the signal.
OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+ <ownedOperation xmi:id="_AT26U1oHEeS2WoXr83SnEA" name="hasReturned" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_AT26VFoHEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.
This implies the fact that the message has been sent. False in all other cases."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26VVoHEeS2WoXr83SnEA" name="isOperationCall" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_AT26VloHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26V1oHEeS2WoXr83SnEA" name="isSignalSent" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_AT26WFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26WVoHEeS2WoXr83SnEA" name="result" type="_AT2541oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_AT26WloHEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,
and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_AT26W1oHEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_AT222loHEeS2WoXr83SnEA _AT23PVoHEeS2WoXr83SnEA _AT2301oHEeS2WoXr83SnEA _AT239FoHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT24GFoHEeS2WoXr83SnEA _AT24G1oHEeS2WoXr83SnEA _AT24NloHEeS2WoXr83SnEA _AT24OVoHEeS2WoXr83SnEA _AT24PloHEeS2WoXr83SnEA _AT24QVoHEeS2WoXr83SnEA _AT24RloHEeS2WoXr83SnEA _AT24TFoHEeS2WoXr83SnEA _AT24T1oHEeS2WoXr83SnEA _AT24WFoHEeS2WoXr83SnEA _AT24W1oHEeS2WoXr83SnEA _AT24YFoHEeS2WoXr83SnEA _AT24Y1oHEeS2WoXr83SnEA _AT24ZloHEeS2WoXr83SnEA _AT24aVoHEeS2WoXr83SnEA _AT24bFoHEeS2WoXr83SnEA _AT24b1oHEeS2WoXr83SnEA _AT24cloHEeS2WoXr83SnEA _AT24dVoHEeS2WoXr83SnEA _AT24eloHEeS2WoXr83SnEA _AT24f1oHEeS2WoXr83SnEA _AT24gloHEeS2WoXr83SnEA _AT24jVoHEeS2WoXr83SnEA _AT24kFoHEeS2WoXr83SnEA _AT24kloHEeS2WoXr83SnEA _AT24lFoHEeS2WoXr83SnEA _AT24l1oHEeS2WoXr83SnEA _AT24mloHEeS2WoXr83SnEA _AT24oloHEeS2WoXr83SnEA _AT249VoHEeS2WoXr83SnEA _AT24-FoHEeS2WoXr83SnEA _AT25P1oHEeS2WoXr83SnEA _AT25QloHEeS2WoXr83SnEA _AT2551oHEeS2WoXr83SnEA _AT256loHEeS2WoXr83SnEA _AT26CFoHEeS2WoXr83SnEA _AT26CloHEeS2WoXr83SnEA _AT26FVoHEeS2WoXr83SnEA _AT26GFoHEeS2WoXr83SnEA _AT26G1oHEeS2WoXr83SnEA _AT26HloHEeS2WoXr83SnEA _AT26IVoHEeS2WoXr83SnEA _AT26LloHEeS2WoXr83SnEA _AT26MVoHEeS2WoXr83SnEA _AT26YFoHEeS2WoXr83SnEA _AT26YloHEeS2WoXr83SnEA _AT26Y1oHEeS2WoXr83SnEA _AT26aFoHEeS2WoXr83SnEA _AT26aloHEeS2WoXr83SnEA _AT26c1oHEeS2WoXr83SnEA _AT26dloHEeS2WoXr83SnEA _AT26mVoHEeS2WoXr83SnEA _AT26m1oHEeS2WoXr83SnEA _AT2661oHEeS2WoXr83SnEA _AT267loHEeS2WoXr83SnEA _AT27QloHEeS2WoXr83SnEA _AT27RVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26XFoHEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation
and Iteration signatures. Instances of OclSelf are never created."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26XVoHEeS2WoXr83SnEA" name="OclState" superClass="_AT2541oHEeS2WoXr83SnEA" typedElement="_AT259VoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26XloHEeS2WoXr83SnEA" name="OclSummable" superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26X1oHEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived
sum and zero implementations may be summed."/>
+ <ownedOperation xmi:id="_AT26YFoHEeS2WoXr83SnEA" name="sum" type="_AT26W1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26YVoHEeS2WoXr83SnEA" body="Return the sum of self and that.

The sum operation should be associative."/>
+ <ownedParameter xmi:id="_AT26YloHEeS2WoXr83SnEA" name="that" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26Y1oHEeS2WoXr83SnEA" name="zero" type="_AT26W1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26ZFoHEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.

zero().sum(self) = self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26ZVoHEeS2WoXr83SnEA" name="OclTuple" superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26ZloHEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple
therefore apply to all tuples."/>
+ <ownedOperation xmi:id="_AT26Z1oHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26aFoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26aVoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26aloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT26a1oHEeS2WoXr83SnEA" name="OclType" superClass="_AT26IloHEeS2WoXr83SnEA" typedElement="_AT26b1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26bFoHEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined
for OclType are therefore applicable to all UML types."/>
+ <ownedOperation xmi:id="_AT26bVoHEeS2WoXr83SnEA" name="conformsTo" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+ <ownedComment xmi:id="_AT26bloHEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+ <ownedParameter xmi:id="_AT26b1oHEeS2WoXr83SnEA" name="type2" type="_AT26a1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_AT26cFoHEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_AT23QFoHEeS2WoXr83SnEA"
+ superClass="_AT2541oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26cVoHEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.
It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.
Any property call applied on oclText[null] results in oclText[invalid], except for the
oclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.
However, by virtue of the implicit conversion to a collection literal,
an expression evaluating to oclText[null] can be used as source of collection operations (such as ‘isEmpty’).
If the source is the oclText[null] literal, it is implicitly converted to Bag{}.

OclVoid is itself an instance of the metatype VoidType."/>
+ <ownedOperation xmi:id="_AT26cloHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26c1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26dFoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26dVoHEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]
if object is oclText[invalid], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_AT26dloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26d1oHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_AT230VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+ <ownedComment xmi:id="_AT26eFoHEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26eVoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+ precedence="_AT27mloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26eloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26e1oHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+ precedence="_AT27nVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26fFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26fVoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_AT26floHEeS2WoXr83SnEA" name="oclIsUndefined" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_AT26f1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+ precedence="_AT27m1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26gFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_AT24FVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26gVoHEeS2WoXr83SnEA" name="toString" type="_AT24h1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_AT26gloHEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT26g1oHEeS2WoXr83SnEA" name="OrderedCollection" superClass="_AT2221oHEeS2WoXr83SnEA"
+ elementType="_AT26hloHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT26hFoHEeS2WoXr83SnEA" templateBinding="_AT23VFoHEeS2WoXr83SnEA _AT23V1oHEeS2WoXr83SnEA _AT23WloHEeS2WoXr83SnEA _AT23XVoHEeS2WoXr83SnEA _AT23YFoHEeS2WoXr83SnEA _AT23Y1oHEeS2WoXr83SnEA _AT23ZloHEeS2WoXr83SnEA _AT23aVoHEeS2WoXr83SnEA _AT23bFoHEeS2WoXr83SnEA _AT23b1oHEeS2WoXr83SnEA _AT23cloHEeS2WoXr83SnEA _AT23dVoHEeS2WoXr83SnEA _AT23eFoHEeS2WoXr83SnEA _AT23e1oHEeS2WoXr83SnEA _AT23floHEeS2WoXr83SnEA _AT23gVoHEeS2WoXr83SnEA _AT23hFoHEeS2WoXr83SnEA _AT23h1oHEeS2WoXr83SnEA _AT23iloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26hVoHEeS2WoXr83SnEA" parameteredElement="_AT26hloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23VVoHEeS2WoXr83SnEA _AT23WFoHEeS2WoXr83SnEA _AT23W1oHEeS2WoXr83SnEA _AT23XloHEeS2WoXr83SnEA _AT23YVoHEeS2WoXr83SnEA _AT23ZFoHEeS2WoXr83SnEA _AT23Z1oHEeS2WoXr83SnEA _AT23aloHEeS2WoXr83SnEA _AT23bVoHEeS2WoXr83SnEA _AT23cFoHEeS2WoXr83SnEA _AT23c1oHEeS2WoXr83SnEA _AT23dloHEeS2WoXr83SnEA _AT23eVoHEeS2WoXr83SnEA _AT23fFoHEeS2WoXr83SnEA _AT23f1oHEeS2WoXr83SnEA _AT23gloHEeS2WoXr83SnEA _AT23hVoHEeS2WoXr83SnEA _AT23iFoHEeS2WoXr83SnEA _AT23i1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26hloHEeS2WoXr83SnEA" name="T" templateParameter="_AT26hVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT223VoHEeS2WoXr83SnEA" typedElement="_AT26h1oHEeS2WoXr83SnEA _AT26iloHEeS2WoXr83SnEA _AT26j1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_AT26h1oHEeS2WoXr83SnEA" name="at" isRequired="false" type="_AT26hloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT26iFoHEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+ <ownedParameter xmi:id="_AT26iVoHEeS2WoXr83SnEA" name="index" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26iloHEeS2WoXr83SnEA" name="first" isRequired="false" type="_AT26hloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT26i1oHEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26jFoHEeS2WoXr83SnEA" name="indexOf" type="_AT24M1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+ <ownedComment xmi:id="_AT26jVoHEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+ <ownedParameter xmi:id="_AT26jloHEeS2WoXr83SnEA" name="obj" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26j1oHEeS2WoXr83SnEA" name="last" isRequired="false" type="_AT26hloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT26kFoHEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_AT26kVoHEeS2WoXr83SnEA" name="OrderedSet" superClass="_AT23cVoHEeS2WoXr83SnEA _AT23_loHEeS2WoXr83SnEA"
+ typedElement="_AT26lVoHEeS2WoXr83SnEA _AT26nFoHEeS2WoXr83SnEA _AT26n1oHEeS2WoXr83SnEA _AT26oloHEeS2WoXr83SnEA _AT26pVoHEeS2WoXr83SnEA _AT26rFoHEeS2WoXr83SnEA _AT26r1oHEeS2WoXr83SnEA _AT26s1oHEeS2WoXr83SnEA _AT26tloHEeS2WoXr83SnEA _AT26uVoHEeS2WoXr83SnEA _AT26xVoHEeS2WoXr83SnEA _AT26yVoHEeS2WoXr83SnEA _AT262loHEeS2WoXr83SnEA _AT263loHEeS2WoXr83SnEA _AT264loHEeS2WoXr83SnEA"
+ elementType="_AT26lFoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT26kloHEeS2WoXr83SnEA" templateBinding="_AT23jVoHEeS2WoXr83SnEA _AT23kFoHEeS2WoXr83SnEA _AT23k1oHEeS2WoXr83SnEA _AT23lloHEeS2WoXr83SnEA _AT23mVoHEeS2WoXr83SnEA _AT23nFoHEeS2WoXr83SnEA _AT23n1oHEeS2WoXr83SnEA _AT23oloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26k1oHEeS2WoXr83SnEA" parameteredElement="_AT26lFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23jloHEeS2WoXr83SnEA _AT23kVoHEeS2WoXr83SnEA _AT23lFoHEeS2WoXr83SnEA _AT23l1oHEeS2WoXr83SnEA _AT23mloHEeS2WoXr83SnEA _AT23nVoHEeS2WoXr83SnEA _AT23oFoHEeS2WoXr83SnEA _AT23o1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26lFoHEeS2WoXr83SnEA" name="T" templateParameter="_AT26k1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT2271oHEeS2WoXr83SnEA _AT23c1oHEeS2WoXr83SnEA _AT24AFoHEeS2WoXr83SnEA" typedElement="_AT26nloHEeS2WoXr83SnEA _AT26rloHEeS2WoXr83SnEA _AT26sloHEeS2WoXr83SnEA _AT26tVoHEeS2WoXr83SnEA _AT26zFoHEeS2WoXr83SnEA _AT2601oHEeS2WoXr83SnEA _AT262VoHEeS2WoXr83SnEA _AT263VoHEeS2WoXr83SnEA _AT264VoHEeS2WoXr83SnEA _AT265VoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_AT26lVoHEeS2WoXr83SnEA" name="-" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT26lloHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_AT26l1oHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26mFoHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26mVoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26mloHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT26m1oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26nFoHEeS2WoXr83SnEA" name="append" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_AT26nVoHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_AT26nloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26n1oHEeS2WoXr83SnEA" name="appendAll" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_AT26oFoHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_AT26oVoHEeS2WoXr83SnEA" name="objects" type="_AT23cVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26oloHEeS2WoXr83SnEA" name="excluding" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_AT26o1oHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_AT26pFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26pVoHEeS2WoXr83SnEA" name="excludingAll" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_AT26ploHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_AT26p1oHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26qFoHEeS2WoXr83SnEA" name="flatten" type="_AT23kloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedTemplateSignature xmi:id="_AT26qVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26qloHEeS2WoXr83SnEA" parameteredElement="_AT26q1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26q1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT26qloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT225loHEeS2WoXr83SnEA _AT23aloHEeS2WoXr83SnEA _AT23lFoHEeS2WoXr83SnEA _AT2391oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26rFoHEeS2WoXr83SnEA" name="including" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_AT26rVoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+ <ownedParameter xmi:id="_AT26rloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26r1oHEeS2WoXr83SnEA" name="insertAt" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT26sFoHEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+ <ownedParameter xmi:id="_AT26sVoHEeS2WoXr83SnEA" name="index" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT26sloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26s1oHEeS2WoXr83SnEA" name="prepend" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_AT26tFoHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_AT26tVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26tloHEeS2WoXr83SnEA" name="prependAll" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_AT26t1oHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_AT26uFoHEeS2WoXr83SnEA" name="objects" type="_AT23cVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26uVoHEeS2WoXr83SnEA" name="reverse" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_AT26uloHEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26u1oHEeS2WoXr83SnEA" name="selectByKind" type="_AT23lVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_AT26vFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26vVoHEeS2WoXr83SnEA" parameteredElement="_AT26vloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26vloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT26vVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT226VoHEeS2WoXr83SnEA _AT23Q1oHEeS2WoXr83SnEA _AT23bVoHEeS2WoXr83SnEA _AT23l1oHEeS2WoXr83SnEA _AT23-loHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT26v1oHEeS2WoXr83SnEA" name="type" type="_AT23QVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26wFoHEeS2WoXr83SnEA" name="selectByType" type="_AT23mFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_AT26wVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26wloHEeS2WoXr83SnEA" parameteredElement="_AT26w1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26w1oHEeS2WoXr83SnEA" name="TT" templateParameter="_AT26wloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT227FoHEeS2WoXr83SnEA _AT23RloHEeS2WoXr83SnEA _AT23cFoHEeS2WoXr83SnEA _AT23mloHEeS2WoXr83SnEA _AT23_VoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT26xFoHEeS2WoXr83SnEA" name="type" type="_AT23RFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26xVoHEeS2WoXr83SnEA" name="subOrderedSet" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT26xloHEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_AT26x1oHEeS2WoXr83SnEA" name="lower" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT26yFoHEeS2WoXr83SnEA" name="upper" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT26yVoHEeS2WoXr83SnEA" name="closure" type="_AT26kVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_AT26yloHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_AT26y1oHEeS2WoXr83SnEA" name="lambda" type="_AT22XloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT26zFoHEeS2WoXr83SnEA" name="i" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT26zVoHEeS2WoXr83SnEA" name="collectNested" type="_AT23sFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_AT26zloHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_AT26z1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT260FoHEeS2WoXr83SnEA" parameteredElement="_AT260VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT260VoHEeS2WoXr83SnEA" name="V" templateParameter="_AT260FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT224FoHEeS2WoXr83SnEA _AT23ZFoHEeS2WoXr83SnEA _AT23sloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT260loHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22X1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT2601oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT261FoHEeS2WoXr83SnEA" name="collect" type="_AT23s1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_AT261VoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT261loHEeS2WoXr83SnEA" parameteredElement="_AT2611oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT2611oHEeS2WoXr83SnEA" name="V" templateParameter="_AT261loHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT2241oHEeS2WoXr83SnEA _AT23Z1oHEeS2WoXr83SnEA _AT23tVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT262FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22YFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT262VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT262loHEeS2WoXr83SnEA" name="reject" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_AT2621oHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_AT263FoHEeS2WoXr83SnEA" name="lambda" type="_AT22XFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT263VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT263loHEeS2WoXr83SnEA" name="select" type="_AT26kVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_AT2631oHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+ <ownedParameter xmi:id="_AT264FoHEeS2WoXr83SnEA" name="lambda" type="_AT22XFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT264VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT264loHEeS2WoXr83SnEA" name="sortedBy" type="_AT26kVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_AT2641oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_AT265FoHEeS2WoXr83SnEA" name="lambda" type="_AT22XVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT265VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT26lFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_AT265loHEeS2WoXr83SnEA" name="Sequence" superClass="_AT23g1oHEeS2WoXr83SnEA"
+ typedElement="_AT2671oHEeS2WoXr83SnEA _AT268loHEeS2WoXr83SnEA _AT269VoHEeS2WoXr83SnEA _AT26-FoHEeS2WoXr83SnEA _AT27AFoHEeS2WoXr83SnEA _AT27A1oHEeS2WoXr83SnEA _AT27B1oHEeS2WoXr83SnEA _AT27CloHEeS2WoXr83SnEA _AT27DVoHEeS2WoXr83SnEA _AT27GVoHEeS2WoXr83SnEA _AT27LloHEeS2WoXr83SnEA _AT27MloHEeS2WoXr83SnEA _AT27NloHEeS2WoXr83SnEA"
+ elementType="_AT266VoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT2651oHEeS2WoXr83SnEA" templateBinding="_AT23pVoHEeS2WoXr83SnEA _AT23qFoHEeS2WoXr83SnEA _AT23q1oHEeS2WoXr83SnEA _AT23rloHEeS2WoXr83SnEA _AT23sVoHEeS2WoXr83SnEA _AT23tFoHEeS2WoXr83SnEA _AT23t1oHEeS2WoXr83SnEA _AT23uloHEeS2WoXr83SnEA _AT23vVoHEeS2WoXr83SnEA _AT23wFoHEeS2WoXr83SnEA _AT23w1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT266FoHEeS2WoXr83SnEA" parameteredElement="_AT266VoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23ploHEeS2WoXr83SnEA _AT23qVoHEeS2WoXr83SnEA _AT23rFoHEeS2WoXr83SnEA _AT23r1oHEeS2WoXr83SnEA _AT23sloHEeS2WoXr83SnEA _AT23tVoHEeS2WoXr83SnEA _AT23uFoHEeS2WoXr83SnEA _AT23u1oHEeS2WoXr83SnEA _AT23vloHEeS2WoXr83SnEA _AT23wVoHEeS2WoXr83SnEA _AT23xFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT266VoHEeS2WoXr83SnEA" name="T" templateParameter="_AT266FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23AVoHEeS2WoXr83SnEA _AT23hVoHEeS2WoXr83SnEA _AT23nVoHEeS2WoXr83SnEA _AT24A1oHEeS2WoXr83SnEA"
+ typedElement="_AT268VoHEeS2WoXr83SnEA _AT27AloHEeS2WoXr83SnEA _AT27BloHEeS2WoXr83SnEA _AT27CVoHEeS2WoXr83SnEA _AT27IFoHEeS2WoXr83SnEA _AT27J1oHEeS2WoXr83SnEA _AT27LVoHEeS2WoXr83SnEA _AT27MVoHEeS2WoXr83SnEA _AT27NVoHEeS2WoXr83SnEA _AT27OVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_AT266loHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT2661oHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT267FoHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT267VoHEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+ <ownedParameter xmi:id="_AT267loHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT2671oHEeS2WoXr83SnEA" name="append" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_AT268FoHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_AT268VoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT268loHEeS2WoXr83SnEA" name="appendAll" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_AT2681oHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_AT269FoHEeS2WoXr83SnEA" name="objects" type="_AT23g1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT269VoHEeS2WoXr83SnEA" name="excluding" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_AT269loHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_AT2691oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26-FoHEeS2WoXr83SnEA" name="excludingAll" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_AT26-VoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_AT26-loHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT26-1oHEeS2WoXr83SnEA" name="flatten" type="_AT23vFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_AT26_FoHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].
If the element type is a collection type, the result is the sequence containing all the elements
of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+ <ownedTemplateSignature xmi:id="_AT26_VoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT26_loHEeS2WoXr83SnEA" parameteredElement="_AT26_1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT26_1oHEeS2WoXr83SnEA" name="T2" templateParameter="_AT26_loHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22-FoHEeS2WoXr83SnEA _AT23fFoHEeS2WoXr83SnEA _AT23vloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27AFoHEeS2WoXr83SnEA" name="including" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_AT27AVoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+ <ownedParameter xmi:id="_AT27AloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27A1oHEeS2WoXr83SnEA" name="insertAt" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT27BFoHEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+ <ownedParameter xmi:id="_AT27BVoHEeS2WoXr83SnEA" name="index" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT27BloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27B1oHEeS2WoXr83SnEA" name="prepend" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_AT27CFoHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_AT27CVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27CloHEeS2WoXr83SnEA" name="prependAll" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_AT27C1oHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_AT27DFoHEeS2WoXr83SnEA" name="objects" type="_AT23g1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27DVoHEeS2WoXr83SnEA" name="reverse" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_AT27DloHEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27D1oHEeS2WoXr83SnEA" name="selectByKind" type="_AT23v1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_AT27EFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27EVoHEeS2WoXr83SnEA" parameteredElement="_AT27EloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27EloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27EVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22-1oHEeS2WoXr83SnEA _AT23SVoHEeS2WoXr83SnEA _AT23f1oHEeS2WoXr83SnEA _AT23wVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27E1oHEeS2WoXr83SnEA" name="type" type="_AT23R1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27FFoHEeS2WoXr83SnEA" name="selectByType" type="_AT23wloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_AT27FVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27FloHEeS2WoXr83SnEA" parameteredElement="_AT27F1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27F1oHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27FloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22_loHEeS2WoXr83SnEA _AT23TFoHEeS2WoXr83SnEA _AT23gloHEeS2WoXr83SnEA _AT23xFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27GFoHEeS2WoXr83SnEA" name="type" type="_AT23SloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27GVoHEeS2WoXr83SnEA" name="subSequence" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_AT27GloHEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_AT27G1oHEeS2WoXr83SnEA" name="lower" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT27HFoHEeS2WoXr83SnEA" name="upper" type="_AT24M1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27HVoHEeS2WoXr83SnEA" name="closure" type="_AT23m1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_AT27HloHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_AT27H1oHEeS2WoXr83SnEA" name="lambda" type="_AT22Y1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27IFoHEeS2WoXr83SnEA" name="i" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27IVoHEeS2WoXr83SnEA" name="collectNested" type="_AT23tloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_AT27IloHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_AT27I1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27JFoHEeS2WoXr83SnEA" parameteredElement="_AT27JVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27JVoHEeS2WoXr83SnEA" name="V" templateParameter="_AT27JFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT228loHEeS2WoXr83SnEA _AT23dloHEeS2WoXr83SnEA _AT23uFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27JloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22ZFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27J1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27KFoHEeS2WoXr83SnEA" name="collect" type="_AT23uVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_AT27KVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27KloHEeS2WoXr83SnEA" parameteredElement="_AT27K1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27K1oHEeS2WoXr83SnEA" name="V" templateParameter="_AT27KloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT229VoHEeS2WoXr83SnEA _AT23eVoHEeS2WoXr83SnEA _AT23u1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27LFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22ZVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27LVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27LloHEeS2WoXr83SnEA" name="reject" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_AT27L1oHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_AT27MFoHEeS2WoXr83SnEA" name="lambda" type="_AT22YVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27MVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27MloHEeS2WoXr83SnEA" name="select" type="_AT265loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_AT27M1oHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_AT27NFoHEeS2WoXr83SnEA" name="lambda" type="_AT22YVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27NVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27NloHEeS2WoXr83SnEA" name="sortedBy" type="_AT265loHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_AT27N1oHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_AT27OFoHEeS2WoXr83SnEA" name="lambda" type="_AT22YloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27OVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT266VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT27OloHEeS2WoXr83SnEA" name="Set" superClass="_AT24DVoHEeS2WoXr83SnEA" typedElement="_AT27PloHEeS2WoXr83SnEA _AT27RloHEeS2WoXr83SnEA _AT27SVoHEeS2WoXr83SnEA _AT27UVoHEeS2WoXr83SnEA _AT27VFoHEeS2WoXr83SnEA _AT27YVoHEeS2WoXr83SnEA _AT27cloHEeS2WoXr83SnEA _AT27dloHEeS2WoXr83SnEA"
+ elementType="_AT27PVoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT27O1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27PFoHEeS2WoXr83SnEA" parameteredElement="_AT27PVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27PVoHEeS2WoXr83SnEA" name="T" templateParameter="_AT27PFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23E1oHEeS2WoXr83SnEA _AT23iFoHEeS2WoXr83SnEA _AT23oFoHEeS2WoXr83SnEA _AT24D1oHEeS2WoXr83SnEA"
+ typedElement="_AT27U1oHEeS2WoXr83SnEA _AT27ZFoHEeS2WoXr83SnEA _AT27a1oHEeS2WoXr83SnEA _AT27cVoHEeS2WoXr83SnEA _AT27dVoHEeS2WoXr83SnEA _AT27eVoHEeS2WoXr83SnEA _AT27fVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23x1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23yloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23zVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT230FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT2301oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT231loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT232VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT233FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT2331oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmtostm.xml#_AT28BloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmMM.xml#_AT28KFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmMM.xml#_AT28K1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="stmMM.xml#_AT28S1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="stmMM.xml#_AT28TloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#_AT23xloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23yVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23zFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23z1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT230loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT231VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT232FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT2321oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT233loHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmtostm.xml#_AT28BVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmMM.xml#_AT28J1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmMM.xml#_AT28KloHEeS2WoXr83SnEA"/>
+ <templateBinding href="stmMM.xml#_AT28SloHEeS2WoXr83SnEA"/>
+ <templateBinding href="stmMM.xml#_AT28TVoHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_AT27PloHEeS2WoXr83SnEA" name="-" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT27P1oHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_AT27QFoHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27QVoHEeS2WoXr83SnEA" name="<>" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_AT27QloHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27Q1oHEeS2WoXr83SnEA" name="=" type="_AT24FVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_AT27mVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT27RFoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+ <ownedParameter xmi:id="_AT27RVoHEeS2WoXr83SnEA" name="object2" type="_AT26W1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27RloHEeS2WoXr83SnEA" name="excluding" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_AT27R1oHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+ <ownedParameter xmi:id="_AT27SFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27SVoHEeS2WoXr83SnEA" name="excludingAll" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_AT27SloHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_AT27S1oHEeS2WoXr83SnEA" name="objects" type="_AT220loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27TFoHEeS2WoXr83SnEA" name="flatten" type="_AT231FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_AT27TVoHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].
If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_AT27TloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27T1oHEeS2WoXr83SnEA" parameteredElement="_AT27UFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27UFoHEeS2WoXr83SnEA" name="T2" templateParameter="_AT27T1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23CloHEeS2WoXr83SnEA _AT231loHEeS2WoXr83SnEA _AT24BloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27UVoHEeS2WoXr83SnEA" name="including" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_AT27UloHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_AT27U1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27VFoHEeS2WoXr83SnEA" name="includingAll" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_AT27VVoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_AT27VloHEeS2WoXr83SnEA" name="objects" type="_AT23EVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27V1oHEeS2WoXr83SnEA" name="selectByKind" type="_AT2311oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_AT27WFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27WVoHEeS2WoXr83SnEA" parameteredElement="_AT27WloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27WloHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27WVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23DVoHEeS2WoXr83SnEA _AT23T1oHEeS2WoXr83SnEA _AT232VoHEeS2WoXr83SnEA _AT24CVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27W1oHEeS2WoXr83SnEA" name="type" type="_AT23TVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27XFoHEeS2WoXr83SnEA" name="selectByType" type="_AT232loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_AT27XVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27XloHEeS2WoXr83SnEA" parameteredElement="_AT27X1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27X1oHEeS2WoXr83SnEA" name="TT" templateParameter="_AT27XloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23EFoHEeS2WoXr83SnEA _AT23UloHEeS2WoXr83SnEA _AT233FoHEeS2WoXr83SnEA _AT24DFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27YFoHEeS2WoXr83SnEA" name="type" type="_AT23UFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27YVoHEeS2WoXr83SnEA" name="closure" type="_AT27OloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_AT27YloHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_AT27Y1oHEeS2WoXr83SnEA" name="lambda" type="_AT22aFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27ZFoHEeS2WoXr83SnEA" name="i" type="_AT27PVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27ZVoHEeS2WoXr83SnEA" name="collectNested" type="_AT22iloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_AT27ZloHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_AT27Z1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27aFoHEeS2WoXr83SnEA" parameteredElement="_AT27aVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27aVoHEeS2WoXr83SnEA" name="V" templateParameter="_AT27aFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22jFoHEeS2WoXr83SnEA _AT23BFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27aloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22aVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27a1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27bFoHEeS2WoXr83SnEA" name="collect" type="_AT22jVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_AT27bVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27bloHEeS2WoXr83SnEA" parameteredElement="_AT27b1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27b1oHEeS2WoXr83SnEA" name="V" templateParameter="_AT27bloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT22j1oHEeS2WoXr83SnEA _AT23B1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_AT27cFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_AT22aloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27cVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27cloHEeS2WoXr83SnEA" name="reject" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_AT27c1oHEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_AT27dFoHEeS2WoXr83SnEA" name="lambda" type="_AT22ZloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27dVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27dloHEeS2WoXr83SnEA" name="select" type="_AT27OloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_AT27d1oHEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+ <ownedParameter xmi:id="_AT27eFoHEeS2WoXr83SnEA" name="lambda" type="_AT22ZloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27eVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27eloHEeS2WoXr83SnEA" name="sortedBy" type="_AT23nloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_AT27e1oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_AT27fFoHEeS2WoXr83SnEA" name="lambda" type="_AT22Z1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27fVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27PVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT27floHEeS2WoXr83SnEA" name="State" superClass="_AT26XVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT27f1oHEeS2WoXr83SnEA" name="Type" superClass="_AT26a1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT27gFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT23FFoHEeS2WoXr83SnEA"
+ typedElement="_AT27hFoHEeS2WoXr83SnEA _AT27j1oHEeS2WoXr83SnEA" elementType="_AT27g1oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_AT27gVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_AT27gloHEeS2WoXr83SnEA" parameteredElement="_AT27g1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_AT27g1oHEeS2WoXr83SnEA" name="T" templateParameter="_AT27gloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_AT23FloHEeS2WoXr83SnEA _AT23i1oHEeS2WoXr83SnEA _AT23o1oHEeS2WoXr83SnEA _AT2331oHEeS2WoXr83SnEA _AT24EloHEeS2WoXr83SnEA"
+ typedElement="_AT27k1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT234loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT235VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT236FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT2361oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT237loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT238VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT239FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT2391oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23-loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT23_VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT24AFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT24A1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT24BloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT24CVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT24DFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT24D1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT24EloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmtostm.xml#_AT28CVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmMM.xml#_AT28LloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmMM.xml#_AT28MVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="stmMM.xml#_AT28UVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="stmMM.xml#_AT28VFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#_AT234VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT235FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT2351oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT236loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT237VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT238FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT2381oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT239loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23-VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23_FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT23_1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT24AloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT24BVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT24CFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT24C1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT24DloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_AT24EVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmtostm.xml#_AT28CFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmMM.xml#_AT28LVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="hstmMM.xml#_AT28MFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="stmMM.xml#_AT28UFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="stmMM.xml#_AT28U1oHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_AT27hFoHEeS2WoXr83SnEA" name="-" type="_AT27gFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_AT27l1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_AT27hVoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_AT27hloHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27h1oHEeS2WoXr83SnEA" name="intersection" type="_AT233VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_AT27iFoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+ <ownedParameter xmi:id="_AT27iVoHEeS2WoXr83SnEA" name="c" type="_AT23FFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27iloHEeS2WoXr83SnEA" name="symmetricDifference" type="_AT233VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+ <ownedComment xmi:id="_AT27i1oHEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+ <ownedParameter xmi:id="_AT27jFoHEeS2WoXr83SnEA" name="s" type="_AT237FoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AT27jVoHEeS2WoXr83SnEA" name="union" type="_AT233VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_AT27jloHEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+ <ownedParameter xmi:id="_AT27j1oHEeS2WoXr83SnEA" name="s" type="_AT27gFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_AT27kFoHEeS2WoXr83SnEA" name="sortedBy" type="_AT23oVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_AT27kVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_AT27kloHEeS2WoXr83SnEA" name="lambda" type="_AT22a1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_AT27k1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_AT27g1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedPrecedence xmi:id="_AT27lFoHEeS2WoXr83SnEA" name="NAVIGATION"/>
+ <ownedPrecedence xmi:id="_AT27lVoHEeS2WoXr83SnEA" name="UNARY" order="1"/>
+ <ownedPrecedence xmi:id="_AT27lloHEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+ <ownedPrecedence xmi:id="_AT27l1oHEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+ <ownedPrecedence xmi:id="_AT27mFoHEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+ <ownedPrecedence xmi:id="_AT27mVoHEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+ <ownedPrecedence xmi:id="_AT27mloHEeS2WoXr83SnEA" name="AND" order="6"/>
+ <ownedPrecedence xmi:id="_AT27m1oHEeS2WoXr83SnEA" name="OR" order="7"/>
+ <ownedPrecedence xmi:id="_AT27nFoHEeS2WoXr83SnEA" name="XOR" order="8"/>
+ <ownedPrecedence xmi:id="_AT27nVoHEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.xml
new file mode 100644
index 0000000..ef3b745
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_AT28DVoHEeS2WoXr83SnEA" name="hstmMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmMM.emof">
+ <nestedPackage xmi:id="_AT28DloHEeS2WoXr83SnEA" name="hstmMM_p" nsURI="hstmMM_p">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28D1oHEeS2WoXr83SnEA" name="State">
+ <templateParameterSubstitution href="hstmtostm.xml#_AT28A1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmtostm.xml#_AT28BloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="hstmtostm.xml#_AT28CVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT28IloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT28KFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_AT28LloHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28EFoHEeS2WoXr83SnEA" name="containedInState" type="_AT28D1oHEeS2WoXr83SnEA" opposite="_AT28EVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28EVoHEeS2WoXr83SnEA" name="containsState" type="_AT28JloHEeS2WoXr83SnEA" opposite="_AT28EFoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28EloHEeS2WoXr83SnEA" name="inTrans" type="_AT28KVoHEeS2WoXr83SnEA" opposite="_AT28GVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28E1oHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_FoHEeS2WoXr83SnEA"/>
+ <propertyItem href="hstmtostm.xml#_AT27vVoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28FFoHEeS2WoXr83SnEA" name="outTrans" type="_AT28KVoHEeS2WoXr83SnEA" opposite="_AT28F1oHEeS2WoXr83SnEA">
+ <propertyItem href="hstmtostm.xml#_AT27y1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28FVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28G1oHEeS2WoXr83SnEA" implicit="true"
+ opposite="_AT28HVoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="hstmtostm.xml#_AT27oloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="hstmtostm.xml#_AT27o1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="hstmtostm.xml#_AT27p1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27qFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="hstmtostm.xml#_AT27q1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27rFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27rVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27r1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="hstmtostm.xml#_AT27sFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27sVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27uVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27vFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT27xVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27yloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT270FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT2721oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT273FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT273VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT2731oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT275loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2761oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT277FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT277loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2771oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT278loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2791oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27-FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27-loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT27-1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_AT28EFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_AT28F1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_AT28GVoHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_FoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28FloHEeS2WoXr83SnEA" name="Trans" templateParameterSubstitution="_AT28JVoHEeS2WoXr83SnEA _AT28K1oHEeS2WoXr83SnEA _AT28MVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT28F1oHEeS2WoXr83SnEA" name="fromState" type="_AT28D1oHEeS2WoXr83SnEA" opposite="_AT28FFoHEeS2WoXr83SnEA">
+ <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28GFoHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+ <propertyItem href="hstmtostm.xml#_AT27zVoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28GVoHEeS2WoXr83SnEA" name="toState" type="_AT28D1oHEeS2WoXr83SnEA" opposite="_AT28EloHEeS2WoXr83SnEA">
+ <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+ <propertyItem href="hstmtostm.xml#_AT27z1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28GloHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28G1oHEeS2WoXr83SnEA" implicit="true"
+ opposite="_AT28HFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27zFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT274FoHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_VoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28G1oHEeS2WoXr83SnEA" name="dummy" typedElement="_AT28FVoHEeS2WoXr83SnEA _AT28GloHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT28HFoHEeS2WoXr83SnEA" name="conatains_trans" type="_AT28KVoHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28GloHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28HVoHEeS2WoXr83SnEA" name="contains_state" type="_AT28JloHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28FVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28HloHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_AT28H1oHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28IFoHEeS2WoXr83SnEA" name="Collection" elementType="_AT28D1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28IVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28IloHEeS2WoXr83SnEA" actual="_AT28D1oHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28I1oHEeS2WoXr83SnEA" name="Collection" elementType="_AT28FloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28JFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28JVoHEeS2WoXr83SnEA" actual="_AT28FloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28JloHEeS2WoXr83SnEA" name="Set" superClass="_AT28LFoHEeS2WoXr83SnEA" typedElement="_AT28EVoHEeS2WoXr83SnEA _AT28HVoHEeS2WoXr83SnEA"
+ elementType="_AT28D1oHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_AT28J1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28KFoHEeS2WoXr83SnEA" actual="_AT28D1oHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28KVoHEeS2WoXr83SnEA" name="Set" superClass="_AT28L1oHEeS2WoXr83SnEA" typedElement="_AT28EloHEeS2WoXr83SnEA _AT28FFoHEeS2WoXr83SnEA _AT28HFoHEeS2WoXr83SnEA"
+ elementType="_AT28FloHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_AT28KloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28K1oHEeS2WoXr83SnEA" actual="_AT28FloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28LFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28IFoHEeS2WoXr83SnEA"
+ elementType="_AT28D1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28LVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28LloHEeS2WoXr83SnEA" actual="_AT28D1oHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28L1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28I1oHEeS2WoXr83SnEA"
+ elementType="_AT28FloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28MFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28MVoHEeS2WoXr83SnEA" actual="_AT28FloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.xml
new file mode 100644
index 0000000..958f80d
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.xml
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_AT27nloHEeS2WoXr83SnEA" name="hstmtostm.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/hstmtostm.qvtr">
+ <ownedComment xmi:id="_AT27n1oHEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_AT27oFoHEeS2WoXr83SnEA" name="HstmToStm">
+ <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_AT27oVoHEeS2WoXr83SnEA" name="StateContainsState">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_AT27oloHEeS2WoXr83SnEA" name="cState">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_AT27o1oHEeS2WoXr83SnEA" name="mState">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_AT27pFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27pVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27ploHEeS2WoXr83SnEA" name="oclAsSet" type="_AT28BFoHEeS2WoXr83SnEA"
+ implicit="true">
+ <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27p1oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27qFoHEeS2WoXr83SnEA" referredVariable="_AT27o1oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </source>
+ <referredProperty href="hstmMM.xml#_AT28EFoHEeS2WoXr83SnEA"/>
+ </source>
+ <referredOperation href="OCL.xml#_AT2561oHEeS2WoXr83SnEA"/>
+ </source>
+ <referredOperation href="OCL.xml#_AT25d1oHEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_AT27qVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27qloHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27q1oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27rFoHEeS2WoXr83SnEA" referredVariable="_AT27o1oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </source>
+ <referredProperty href="hstmMM.xml#_AT28EFoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27rVoHEeS2WoXr83SnEA" referredVariable="_AT27oloHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_AT256FoHEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27rloHEeS2WoXr83SnEA" referredOperation="_AT27oVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27r1oHEeS2WoXr83SnEA" referredVariable="_AT27oloHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27sFoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27sVoHEeS2WoXr83SnEA" referredVariable="_AT27o1oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </source>
+ <referredProperty href="hstmMM.xml#_AT28EFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:BooleanLiteralExp" xmi:id="_AT27sloHEeS2WoXr83SnEA" booleanSymbol="true">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:BooleanLiteralExp" xmi:id="_AT27s1oHEeS2WoXr83SnEA" booleanSymbol="false">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </queryExpression>
+ </ownedOperation>
+ <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+ <modelParameter xmi:id="_AT27tFoHEeS2WoXr83SnEA" name="hstm">
+ <usedPackage href="hstmMM.xml#_AT28DloHEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <modelParameter xmi:id="_AT27tVoHEeS2WoXr83SnEA" name="stm">
+ <usedPackage href="stmMM.xml#_AT28M1oHEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_AT27tloHEeS2WoXr83SnEA" name="LStateToState" isTopLevel="true" relationCallExp="_AT275VoHEeS2WoXr83SnEA _AT278VoHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT27t1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_AT27tFoHEeS2WoXr83SnEA"
+ rootVariable="_AT27xVoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_AT27uFoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27uVoHEeS2WoXr83SnEA" bindsTo="_AT27xVoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <where xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27uloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_AT27u1oHEeS2WoXr83SnEA" type="_AT28BFoHEeS2WoXr83SnEA">
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27vFoHEeS2WoXr83SnEA" referredVariable="_AT27xVoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </source>
+ <referredProperty href="hstmMM.xml#_AT28EVoHEeS2WoXr83SnEA"/>
+ </source>
+ <referredOperation href="OCL.xml#_AT25d1oHEeS2WoXr83SnEA"/>
+ </where>
+ <part xmi:id="_AT27vVoHEeS2WoXr83SnEA">
+ <referredProperty href="hstmMM.xml#_AT28E1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27vloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT27xFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT27v1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_AT27tVoHEeS2WoXr83SnEA"
+ rootVariable="_AT27xloHEeS2WoXr83SnEA">
+ <pattern xmi:id="_AT27wFoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27wVoHEeS2WoXr83SnEA" bindsTo="_AT27xloHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_AT27wloHEeS2WoXr83SnEA">
+ <referredProperty href="stmMM.xml#_AT28NloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27w1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT27xFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_AT27xFoHEeS2WoXr83SnEA" name="n" isRequired="false">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT27xVoHEeS2WoXr83SnEA" name="s1" templateExp="_AT27uVoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT27xloHEeS2WoXr83SnEA" name="s2" templateExp="_AT27wVoHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </variable>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_AT27x1oHEeS2WoXr83SnEA" name="CStateToState" isTopLevel="true">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT27yFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_AT27tFoHEeS2WoXr83SnEA"
+ rootVariable="_AT2731oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_AT27yVoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27yloHEeS2WoXr83SnEA" bindsTo="_AT2731oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <part xmi:id="_AT27y1oHEeS2WoXr83SnEA">
+ <referredProperty href="hstmMM.xml#_AT28FFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT27zFoHEeS2WoXr83SnEA" bindsTo="_AT274FoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_AT27zVoHEeS2WoXr83SnEA">
+ <referredProperty href="hstmMM.xml#_AT28GFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27zloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT272loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_AT27z1oHEeS2WoXr83SnEA">
+ <referredProperty href="hstmMM.xml#_AT28GVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT270FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273VoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_AT270VoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_AT27tVoHEeS2WoXr83SnEA"
+ rootVariable="_AT274VoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_AT270loHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT2701oHEeS2WoXr83SnEA" bindsTo="_AT274VoHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_AT271FoHEeS2WoXr83SnEA">
+ <referredProperty href="stmMM.xml#_AT28N1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_AT271VoHEeS2WoXr83SnEA" bindsTo="_AT274loHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_AT271loHEeS2WoXr83SnEA">
+ <referredProperty href="stmMM.xml#_AT28O1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2711oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT272loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_AT272FoHEeS2WoXr83SnEA">
+ <referredProperty href="stmMM.xml#_AT28PFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_AT272VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273loHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_AT272loHEeS2WoXr83SnEA" name="tn" isRequired="false">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT2721oHEeS2WoXr83SnEA" name="ms1" isRequired="false">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT273FoHEeS2WoXr83SnEA" name="ms2" isRequired="false">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT273VoHEeS2WoXr83SnEA" name="ts1" isRequired="false">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT273loHEeS2WoXr83SnEA" name="ts2" isRequired="false">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT2731oHEeS2WoXr83SnEA" name="fs1" templateExp="_AT27yloHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT274FoHEeS2WoXr83SnEA" name="t1" templateExp="_AT27zFoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT274VoHEeS2WoXr83SnEA" name="fs2" templateExp="_AT2701oHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_AT274loHEeS2WoXr83SnEA" name="t2" templateExp="_AT271VoHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="_AT2741oHEeS2WoXr83SnEA">
+ <predicate xmi:id="_AT275FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_AT275VoHEeS2WoXr83SnEA" referredRelation="_AT27tloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT275loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT2721oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2751oHEeS2WoXr83SnEA" referredVariable="_AT274VoHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_AT276FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT276VoHEeS2WoXr83SnEA" name="or" isRequired="false">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT276loHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2761oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT2721oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT277FoHEeS2WoXr83SnEA" referredVariable="_AT2731oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_AT256FoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT277VoHEeS2WoXr83SnEA" referredOperation="_AT27oVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT277loHEeS2WoXr83SnEA" referredVariable="_AT2731oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2771oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT2721oHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ </argument>
+ <referredOperation href="OCL.xml#_AT24KVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_AT278FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_AT278VoHEeS2WoXr83SnEA" referredRelation="_AT27tloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT278loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273FoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2781oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273loHEeS2WoXr83SnEA">
+ <type href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_AT279FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT279VoHEeS2WoXr83SnEA" name="or" isRequired="false">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT279loHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_AT2791oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273FoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27-FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273VoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_AT256FoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_AT27-VoHEeS2WoXr83SnEA" referredOperation="_AT27oVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_AT24FVoHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27-loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273VoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_AT27-1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_AT273FoHEeS2WoXr83SnEA">
+ <type href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </argument>
+ </argument>
+ <referredOperation href="OCL.xml#_AT24KVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ </rule>
+ <ownedKey xmi:id="_AT27_FoHEeS2WoXr83SnEA">
+ <identifies href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <part href="hstmMM.xml#_AT28E1oHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_AT27_VoHEeS2WoXr83SnEA">
+ <identifies href="hstmMM.xml#_AT28FloHEeS2WoXr83SnEA"/>
+ <part href="hstmMM.xml#_AT28GFoHEeS2WoXr83SnEA"/>
+ <part href="hstmMM.xml#_AT28F1oHEeS2WoXr83SnEA"/>
+ <part href="hstmMM.xml#_AT28GVoHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_AT27_loHEeS2WoXr83SnEA">
+ <identifies href="stmMM.xml#_AT28NFoHEeS2WoXr83SnEA"/>
+ <part href="stmMM.xml#_AT28NloHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_AT27_1oHEeS2WoXr83SnEA">
+ <identifies href="stmMM.xml#_AT28OVoHEeS2WoXr83SnEA"/>
+ <part href="stmMM.xml#_AT28O1oHEeS2WoXr83SnEA"/>
+ <part href="stmMM.xml#_AT28OloHEeS2WoXr83SnEA"/>
+ <part href="stmMM.xml#_AT28PFoHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ </nestedPackage>
+ <nestedPackage xmi:id="_AT28AFoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28AVoHEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="_AT28AloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28A1oHEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+ <elementType href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28BFoHEeS2WoXr83SnEA" name="Set" superClass="_AT28B1oHEeS2WoXr83SnEA" typedElement="_AT27ploHEeS2WoXr83SnEA _AT27u1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28BVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28BloHEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+ <elementType href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28B1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28AVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28CFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28CVoHEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+ <elementType href="hstmMM.xml#_AT28D1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <unit xmi:id="_AT28CloHEeS2WoXr83SnEA" name="hstmMM_p">
+ <ownedComment xmi:id="_AT28C1oHEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <usedPackage xmi:type="flatemofqvt:Package" href="hstmMM.xml#_AT28DloHEeS2WoXr83SnEA"/>
+ </unit>
+ <unit xmi:id="_AT28DFoHEeS2WoXr83SnEA" name="stmMM_p">
+ <usedPackage xmi:type="flatemofqvt:Package" href="stmMM.xml#_AT28M1oHEeS2WoXr83SnEA"/>
+ </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.xml
new file mode 100644
index 0000000..aac7cf8
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_AT28MloHEeS2WoXr83SnEA" name="stmMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/HstmToStm/stmMM.emof">
+ <nestedPackage xmi:id="_AT28M1oHEeS2WoXr83SnEA" name="stmMM_p" nsURI="stmMM_p">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28NFoHEeS2WoXr83SnEA" name="State" templateParameterSubstitution="_AT28RVoHEeS2WoXr83SnEA _AT28S1oHEeS2WoXr83SnEA _AT28UVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT28NVoHEeS2WoXr83SnEA" name="inTrans" type="_AT28TFoHEeS2WoXr83SnEA" opposite="_AT28PFoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28NloHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_loHEeS2WoXr83SnEA"/>
+ <propertyItem href="hstmtostm.xml#_AT27wloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28N1oHEeS2WoXr83SnEA" name="outTrans" type="_AT28TFoHEeS2WoXr83SnEA" opposite="_AT28OloHEeS2WoXr83SnEA">
+ <propertyItem href="hstmtostm.xml#_AT271FoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28OFoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28PloHEeS2WoXr83SnEA" implicit="true"
+ opposite="_AT28P1oHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT27wVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT27xloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT2701oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT272VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT273loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT274VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2751oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="hstmtostm.xml#_AT2781oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_AT28OloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_AT28PFoHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_loHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28OVoHEeS2WoXr83SnEA" name="Trans" templateParameterSubstitution="_AT28SFoHEeS2WoXr83SnEA _AT28TloHEeS2WoXr83SnEA _AT28VFoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT28OloHEeS2WoXr83SnEA" name="fromState" type="_AT28NFoHEeS2WoXr83SnEA" opposite="_AT28N1oHEeS2WoXr83SnEA">
+ <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28O1oHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="hstmtostm.xml#_AT271loHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28PFoHEeS2WoXr83SnEA" name="toState" type="_AT28NFoHEeS2WoXr83SnEA" opposite="_AT28NVoHEeS2WoXr83SnEA">
+ <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="hstmtostm.xml#_AT272FoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_AT28PVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_AT28PloHEeS2WoXr83SnEA" implicit="true"
+ opposite="_AT28QFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="hstmtostm.xml#_AT271VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="hstmtostm.xml#_AT274loHEeS2WoXr83SnEA"/>
+ <key href="hstmtostm.xml#_AT27_1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_AT28PloHEeS2WoXr83SnEA" name="dummy" typedElement="_AT28OFoHEeS2WoXr83SnEA _AT28PVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_AT28P1oHEeS2WoXr83SnEA" name="container_state" type="_AT28SVoHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28OFoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28QFoHEeS2WoXr83SnEA" name="container_trans" type="_AT28TFoHEeS2WoXr83SnEA" isComposite="true" opposite="_AT28PVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_AT28QVoHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_AT24h1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_AT26IloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_AT28QloHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28Q1oHEeS2WoXr83SnEA" name="Collection" elementType="_AT28NFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28RFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28RVoHEeS2WoXr83SnEA" actual="_AT28NFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28RloHEeS2WoXr83SnEA" name="Collection" elementType="_AT28OVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28R1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28SFoHEeS2WoXr83SnEA" actual="_AT28OVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT25NFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT25M1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT25MloHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_AT2541oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28SVoHEeS2WoXr83SnEA" name="Set" superClass="_AT28T1oHEeS2WoXr83SnEA" typedElement="_AT28P1oHEeS2WoXr83SnEA"
+ elementType="_AT28NFoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_AT28SloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28S1oHEeS2WoXr83SnEA" actual="_AT28NFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_AT28TFoHEeS2WoXr83SnEA" name="Set" superClass="_AT28UloHEeS2WoXr83SnEA" typedElement="_AT28NVoHEeS2WoXr83SnEA _AT28N1oHEeS2WoXr83SnEA _AT28QFoHEeS2WoXr83SnEA"
+ elementType="_AT28OVoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_AT28TVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28TloHEeS2WoXr83SnEA" actual="_AT28OVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27PFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27O1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_AT27OloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28T1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28Q1oHEeS2WoXr83SnEA"
+ elementType="_AT28NFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28UFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28UVoHEeS2WoXr83SnEA" actual="_AT28NFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_AT28UloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_AT28RloHEeS2WoXr83SnEA"
+ elementType="_AT28OVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_AT28U1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_AT28VFoHEeS2WoXr83SnEA" actual="_AT28OVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_AT27gloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_AT27gVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_AT27gFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/OCL.xml
new file mode 100644
index 0000000..a93daf8
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/OCL.xml
@@ -0,0 +1,2762 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_ArQDNloHEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <nestedPackage xmi:id="_ArQDN1oHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDOFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGDVoHEeS2WoXr83SnEA _ArQGEVoHEeS2WoXr83SnEA"
+ contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDOVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGA1oHEeS2WoXr83SnEA"
+ contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQGAloHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDOloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGCVoHEeS2WoXr83SnEA"
+ contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQGCFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDO1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGFVoHEeS2WoXr83SnEA"
+ contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDPFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQF_FoHEeS2WoXr83SnEA"
+ contextType="_ArQF2VoHEeS2WoXr83SnEA" resultType="_ArQErloHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDPVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGfloHEeS2WoXr83SnEA _ArQGj1oHEeS2WoXr83SnEA _ArQGlFoHEeS2WoXr83SnEA _ArQGl1oHEeS2WoXr83SnEA _ArQGnFoHEeS2WoXr83SnEA _ArQGq1oHEeS2WoXr83SnEA _ArQGr1oHEeS2WoXr83SnEA _ArQGs1oHEeS2WoXr83SnEA"
+ contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDPloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGhVoHEeS2WoXr83SnEA"
+ contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGhFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDP1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGjFoHEeS2WoXr83SnEA"
+ contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGi1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGploHEeS2WoXr83SnEA"
+ contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGpVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQGoFoHEeS2WoXr83SnEA _ArQGt1oHEeS2WoXr83SnEA"
+ contextType="_ArQGG1oHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHwloHEeS2WoXr83SnEA _ArQHxloHEeS2WoXr83SnEA"
+ contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDQ1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHyloHEeS2WoXr83SnEA"
+ contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDRFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHsVoHEeS2WoXr83SnEA"
+ contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQHd1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDRVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHuFoHEeS2WoXr83SnEA"
+ contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQHt1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDRloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQHvloHEeS2WoXr83SnEA"
+ contextType="_ArQHeloHEeS2WoXr83SnEA" resultType="_ArQHvVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDR1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIFloHEeS2WoXr83SnEA _ArQIGloHEeS2WoXr83SnEA"
+ contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDSFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIHloHEeS2WoXr83SnEA"
+ contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDSVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIBVoHEeS2WoXr83SnEA"
+ contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQEgVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDSloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIDFoHEeS2WoXr83SnEA"
+ contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQIC1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDS1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIEloHEeS2WoXr83SnEA"
+ contextType="_ArQHz1oHEeS2WoXr83SnEA" resultType="_ArQIEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDTFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIWloHEeS2WoXr83SnEA _ArQIXloHEeS2WoXr83SnEA"
+ contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQE-1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDTVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIYloHEeS2WoXr83SnEA"
+ contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDTloHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQISVoHEeS2WoXr83SnEA"
+ contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQIIFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDT1oHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIUFoHEeS2WoXr83SnEA"
+ contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQIT1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDUFoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIVloHEeS2WoXr83SnEA"
+ contextType="_ArQII1oHEeS2WoXr83SnEA" resultType="_ArQIVVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_ArQDUVoHEeS2WoXr83SnEA" name="Lambda" superClass="_ArQHNVoHEeS2WoXr83SnEA" typedElement="_ArQIeFoHEeS2WoXr83SnEA"
+ contextType="_ArQIaVoHEeS2WoXr83SnEA" resultType="_ArQGyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_ArQDUloHEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_ArQDfloHEeS2WoXr83SnEA _ArQErVoHEeS2WoXr83SnEA _ArQEyFoHEeS2WoXr83SnEA"
+ superClass="_ArQHS1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_ArQDU1oHEeS2WoXr83SnEA" name="first" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_ArQDVFoHEeS2WoXr83SnEA" name="second" type="_ArQGaVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDVVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDf1oHEeS2WoXr83SnEA" typedElement="_ArQF_loHEeS2WoXr83SnEA" elementType="_ArQGAloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDVloHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDV1oHEeS2WoXr83SnEA" actual="_ArQGAloHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDWFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDgloHEeS2WoXr83SnEA" typedElement="_ArQGBVoHEeS2WoXr83SnEA" elementType="_ArQGCFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDWVoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDWloHEeS2WoXr83SnEA" actual="_ArQGCFoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDW1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDhVoHEeS2WoXr83SnEA" typedElement="_ArQF5VoHEeS2WoXr83SnEA" elementType="_ArQF6VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDXFoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDXVoHEeS2WoXr83SnEA" actual="_ArQF6VoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDXloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDiFoHEeS2WoXr83SnEA" typedElement="_ArQF8FoHEeS2WoXr83SnEA" elementType="_ArQF81oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDX1oHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDYFoHEeS2WoXr83SnEA" actual="_ArQF81oHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDYVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDi1oHEeS2WoXr83SnEA" typedElement="_ArQF9VoHEeS2WoXr83SnEA" elementType="_ArQF-FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDYloHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDY1oHEeS2WoXr83SnEA" actual="_ArQF-FoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDZFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDqVoHEeS2WoXr83SnEA" typedElement="_ArQGKVoHEeS2WoXr83SnEA _ArQGV1oHEeS2WoXr83SnEA _ArQGeVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDZVoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDZloHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDZ1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDrFoHEeS2WoXr83SnEA" typedElement="_ArQGHFoHEeS2WoXr83SnEA" elementType="_ArQGGFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDaFoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDaVoHEeS2WoXr83SnEA" actual="_ArQGGFoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDaloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDsloHEeS2WoXr83SnEA" typedElement="_ArQGwVoHEeS2WoXr83SnEA" elementType="_ArQGuVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDa1oHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDbFoHEeS2WoXr83SnEA" actual="_ArQGuVoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDbVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQDtVoHEeS2WoXr83SnEA" typedElement="_ArQGxloHEeS2WoXr83SnEA" elementType="_ArQGwloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDbloHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDb1oHEeS2WoXr83SnEA" actual="_ArQGwloHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDcFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQD6FoHEeS2WoXr83SnEA" typedElement="_ArQIS1oHEeS2WoXr83SnEA" elementType="_ArQIT1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDcVoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDcloHEeS2WoXr83SnEA" actual="_ArQIT1oHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQDc1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_ArQF1loHEeS2WoXr83SnEA"
+ superClass="_ArQD61oHEeS2WoXr83SnEA" typedElement="_ArQIUloHEeS2WoXr83SnEA" elementType="_ArQIVVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDdFoHEeS2WoXr83SnEA" signature="_ArQF11oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDdVoHEeS2WoXr83SnEA" actual="_ArQIVVoHEeS2WoXr83SnEA" formal="_ArQF2FoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDdloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQFGVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDd1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDeFoHEeS2WoXr83SnEA" actual="_ArQFGVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDeVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQFbVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDeloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDe1oHEeS2WoXr83SnEA" actual="_ArQFbVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDfFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQDUloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDfVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDfloHEeS2WoXr83SnEA" actual="_ArQDUloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDf1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGAloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDgFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDgVoHEeS2WoXr83SnEA" actual="_ArQGAloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDgloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGCFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDg1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDhFoHEeS2WoXr83SnEA" actual="_ArQGCFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDhVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQF6VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDhloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDh1oHEeS2WoXr83SnEA" actual="_ArQF6VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDiFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQF81oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDiVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDiloHEeS2WoXr83SnEA" actual="_ArQF81oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDi1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQF-FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDjFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDjVoHEeS2WoXr83SnEA" actual="_ArQF-FoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDjloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQF71oHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDj1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDkFoHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDkVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGgFoHEeS2WoXr83SnEA" elementType="_ArQGhFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDkloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDk1oHEeS2WoXr83SnEA" actual="_ArQGhFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDlFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGh1oHEeS2WoXr83SnEA" elementType="_ArQGi1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDlVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDlloHEeS2WoXr83SnEA" actual="_ArQGi1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDl1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGPFoHEeS2WoXr83SnEA" elementType="_ArQGO1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDmFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDmVoHEeS2WoXr83SnEA" actual="_ArQGO1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDmloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGQ1oHEeS2WoXr83SnEA" elementType="_ArQGR1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDm1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDnFoHEeS2WoXr83SnEA" actual="_ArQGR1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDnVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGUFoHEeS2WoXr83SnEA" elementType="_ArQGT1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDnloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDn1oHEeS2WoXr83SnEA" actual="_ArQGT1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDoFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGaloHEeS2WoXr83SnEA" elementType="_ArQGaVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDoVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDoloHEeS2WoXr83SnEA" actual="_ArQGaVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDo1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGa1oHEeS2WoXr83SnEA" elementType="_ArQGbloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDpFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDpVoHEeS2WoXr83SnEA" actual="_ArQGbloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDploHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGcFoHEeS2WoXr83SnEA" elementType="_ArQGc1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDp1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDqFoHEeS2WoXr83SnEA" actual="_ArQGc1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDqVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDqloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDq1oHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDrFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGGFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDrVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDrloHEeS2WoXr83SnEA" actual="_ArQGGFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDr1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDsFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDsVoHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDsloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGuVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDs1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDtFoHEeS2WoXr83SnEA" actual="_ArQGuVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDtVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQGwloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDtloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDt1oHEeS2WoXr83SnEA" actual="_ArQGwloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDuFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQF5FoHEeS2WoXr83SnEA _ArQGQloHEeS2WoXr83SnEA _ArQHjVoHEeS2WoXr83SnEA _ArQH4FoHEeS2WoXr83SnEA _ArQIMVoHEeS2WoXr83SnEA"
+ elementType="_ArQGyVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDuVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDuloHEeS2WoXr83SnEA" actual="_ArQGyVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDu1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHCFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDvFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDvVoHEeS2WoXr83SnEA" actual="_ArQHCFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDvloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHQVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDv1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDwFoHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDwVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHbFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDwloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDw1oHEeS2WoXr83SnEA" actual="_ArQHbFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDxFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHt1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDxVoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDxloHEeS2WoXr83SnEA" actual="_ArQHt1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDx1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHvVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDyFoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDyVoHEeS2WoXr83SnEA" actual="_ArQHvVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDyloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDy1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDzFoHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDzVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDzloHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDz1oHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD0FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD0VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD0loHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD01oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHeloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD1FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD1VoHEeS2WoXr83SnEA" actual="_ArQHeloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD1loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIC1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD11oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD2FoHEeS2WoXr83SnEA" actual="_ArQIC1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD2VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIEVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD2loHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD21oHEeS2WoXr83SnEA" actual="_ArQIEVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD3FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQH5VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD3VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD3loHEeS2WoXr83SnEA" actual="_ArQH5VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD31oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQH-FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD4FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD4VoHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD4loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQH_VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD41oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD5FoHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD5VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD5loHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD51oHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD6FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIT1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD6VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD6loHEeS2WoXr83SnEA" actual="_ArQIT1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD61oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIVVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD7FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD7VoHEeS2WoXr83SnEA" actual="_ArQIVVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD7loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQINloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD71oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD8FoHEeS2WoXr83SnEA" actual="_ArQINloHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD8VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD8loHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD81oHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD9FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" elementType="_ArQIRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD9VoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD9loHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD91oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQIPFoHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD-FoHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD-VoHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQD-loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_ArQGGFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQIb1oHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD-1oHEeS2WoXr83SnEA" signature="_ArQGGVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD_FoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQGGloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQD_VoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQF1VoHEeS2WoXr83SnEA" instanceType="_ArQF1FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQD_loHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQD_1oHEeS2WoXr83SnEA" actual="_ArQF1FoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEAFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQF9FoHEeS2WoXr83SnEA" instanceType="_ArQF81oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEAVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEAloHEeS2WoXr83SnEA" actual="_ArQF81oHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEA1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQF-VoHEeS2WoXr83SnEA" instanceType="_ArQF-FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEBFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEBVoHEeS2WoXr83SnEA" actual="_ArQF-FoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEBloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQGb1oHEeS2WoXr83SnEA" instanceType="_ArQGbloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEB1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQECFoHEeS2WoXr83SnEA" actual="_ArQGbloHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQECVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQGdFoHEeS2WoXr83SnEA" instanceType="_ArQGc1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQECloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEC1oHEeS2WoXr83SnEA" actual="_ArQGc1oHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEDFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG2FoHEeS2WoXr83SnEA" instanceType="_ArQG11oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEDVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEDloHEeS2WoXr83SnEA" actual="_ArQG11oHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQED1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG41oHEeS2WoXr83SnEA" instanceType="_ArQG4loHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEEFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEEVoHEeS2WoXr83SnEA" actual="_ArQG4loHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEEloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG61oHEeS2WoXr83SnEA" instanceType="_ArQG6loHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEE1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEFFoHEeS2WoXr83SnEA" actual="_ArQG6loHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEFVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHI1oHEeS2WoXr83SnEA" instanceType="_ArQHIloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEFloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEF1oHEeS2WoXr83SnEA" actual="_ArQHIloHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEGFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHKVoHEeS2WoXr83SnEA" instanceType="_ArQHKFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEGVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEGloHEeS2WoXr83SnEA" actual="_ArQHKFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEG1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHLloHEeS2WoXr83SnEA" instanceType="_ArQHLVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEHFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEHVoHEeS2WoXr83SnEA" actual="_ArQHLVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEHloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" instanceType="_ArQHEFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEH1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEIFoHEeS2WoXr83SnEA" actual="_ArQHEFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEIVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQG81oHEeS2WoXr83SnEA _ArQHMFoHEeS2WoXr83SnEA" instanceType="_ArQHQVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEIloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEI1oHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEJFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" instanceType="_ArQHVloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEJVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEJloHEeS2WoXr83SnEA" actual="_ArQHVloHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEJ1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHpVoHEeS2WoXr83SnEA" instanceType="_ArQHpFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEKFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEKVoHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEKloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQHqloHEeS2WoXr83SnEA" instanceType="_ArQHqVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEK1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQELFoHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQELVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQH-VoHEeS2WoXr83SnEA" instanceType="_ArQH-FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQELloHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEL1oHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEMFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQH_loHEeS2WoXr83SnEA" instanceType="_ArQH_VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEMVoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEMloHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQEM1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQIQVoHEeS2WoXr83SnEA" instanceType="_ArQIQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQENFoHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQENVoHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQENloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_ArQGwloHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" typedElement="_ArQIRloHEeS2WoXr83SnEA" instanceType="_ArQIRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEN1oHEeS2WoXr83SnEA" signature="_ArQGw1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEOFoHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQGxFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEOVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDdloHEeS2WoXr83SnEA" elementType="_ArQFGVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEOloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEO1oHEeS2WoXr83SnEA" actual="_ArQFGVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEPFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDeVoHEeS2WoXr83SnEA" elementType="_ArQFbVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEPVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEPloHEeS2WoXr83SnEA" actual="_ArQFbVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEP1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDjloHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEQFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEQVoHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEQloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDqVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEQ1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQERFoHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQERVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDr1oHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQERloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQER1oHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQESFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDxFoHEeS2WoXr83SnEA" elementType="_ArQHt1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQESVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQESloHEeS2WoXr83SnEA" actual="_ArQHt1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQES1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDx1oHEeS2WoXr83SnEA" elementType="_ArQHvVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQETFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQETVoHEeS2WoXr83SnEA" actual="_ArQHvVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQETloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDyloHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQET1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEUFoHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEUVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQDzVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEUloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEU1oHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEVFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD0FoHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEVVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEVloHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEV1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD01oHEeS2WoXr83SnEA" typedElement="_ArQHh1oHEeS2WoXr83SnEA _ArQHnloHEeS2WoXr83SnEA" elementType="_ArQHeloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEWFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEWVoHEeS2WoXr83SnEA" actual="_ArQHeloHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEWloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD1loHEeS2WoXr83SnEA" elementType="_ArQIC1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEW1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEXFoHEeS2WoXr83SnEA" actual="_ArQIC1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEXVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD2VoHEeS2WoXr83SnEA" elementType="_ArQIEVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEXloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEX1oHEeS2WoXr83SnEA" actual="_ArQIEVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEYFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD3FoHEeS2WoXr83SnEA" elementType="_ArQH5VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEYVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEYloHEeS2WoXr83SnEA" actual="_ArQH5VoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEY1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD31oHEeS2WoXr83SnEA" elementType="_ArQH-FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEZFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEZVoHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEZloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD4loHEeS2WoXr83SnEA" elementType="_ArQH_VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEZ1oHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEaFoHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEaVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD5VoHEeS2WoXr83SnEA" typedElement="_ArQH2loHEeS2WoXr83SnEA _ArQH8loHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEaloHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEa1oHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEbFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD91oHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEbVoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEbloHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEb1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_ArQHaVoHEeS2WoXr83SnEA"
+ superClass="_ArQD-loHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEcFoHEeS2WoXr83SnEA" signature="_ArQHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEcVoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQHa1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEcloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQEQloHEeS2WoXr83SnEA _ArQEzFoHEeS2WoXr83SnEA" typedElement="_ArQGK1oHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEc1oHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEdFoHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEdVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQERVoHEeS2WoXr83SnEA _ArQEz1oHEeS2WoXr83SnEA" typedElement="_ArQGu1oHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEdloHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEd1oHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEeFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQETloHEeS2WoXr83SnEA _ArQE21oHEeS2WoXr83SnEA" typedElement="_ArQHjloHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEeVoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEeloHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEe1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQEUVoHEeS2WoXr83SnEA _ArQE3loHEeS2WoXr83SnEA" typedElement="_ArQHoVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEfFoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEfVoHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEfloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQEVFoHEeS2WoXr83SnEA _ArQE4VoHEeS2WoXr83SnEA" typedElement="_ArQHploHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEf1oHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEgFoHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEgVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQEaVoHEeS2WoXr83SnEA _ArQE51oHEeS2WoXr83SnEA" typedElement="_ArQIA1oHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEgloHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEg1oHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEhFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQEbFoHEeS2WoXr83SnEA _ArQE81oHEeS2WoXr83SnEA" typedElement="_ArQIYFoHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEhVoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEhloHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQEh1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_ArQHd1oHEeS2WoXr83SnEA"
+ superClass="_ArQEb1oHEeS2WoXr83SnEA _ArQE9loHEeS2WoXr83SnEA" typedElement="_ArQIdloHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEiFoHEeS2WoXr83SnEA" signature="_ArQHeFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEiVoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQHeVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEiloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEOVoHEeS2WoXr83SnEA" elementType="_ArQFGVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEi1oHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEjFoHEeS2WoXr83SnEA" actual="_ArQFGVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEjVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEPFoHEeS2WoXr83SnEA" typedElement="_ArQFhFoHEeS2WoXr83SnEA _ArQFxFoHEeS2WoXr83SnEA _ArQFxloHEeS2WoXr83SnEA _ArQFyVoHEeS2WoXr83SnEA"
+ elementType="_ArQFbVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEjloHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEj1oHEeS2WoXr83SnEA" actual="_ArQFbVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEkFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEP1oHEeS2WoXr83SnEA" typedElement="_ArQGE1oHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEkVoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEkloHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEk1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEQloHEeS2WoXr83SnEA" typedElement="_ArQGLVoHEeS2WoXr83SnEA _ArQGtVoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQElFoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQElVoHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQElloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQESFoHEeS2WoXr83SnEA" typedElement="_ArQHs1oHEeS2WoXr83SnEA" elementType="_ArQHt1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEl1oHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEmFoHEeS2WoXr83SnEA" actual="_ArQHt1oHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEmVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQES1oHEeS2WoXr83SnEA" typedElement="_ArQHuloHEeS2WoXr83SnEA" elementType="_ArQHvVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEmloHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEm1oHEeS2WoXr83SnEA" actual="_ArQHvVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEnFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEWloHEeS2WoXr83SnEA" typedElement="_ArQIB1oHEeS2WoXr83SnEA" elementType="_ArQIC1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEnVoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEnloHEeS2WoXr83SnEA" actual="_ArQIC1oHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEn1oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEXVoHEeS2WoXr83SnEA" typedElement="_ArQIDloHEeS2WoXr83SnEA" elementType="_ArQIEVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEoFoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEoVoHEeS2WoXr83SnEA" actual="_ArQIEVoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEoloHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEYFoHEeS2WoXr83SnEA" typedElement="_ArQH4VoHEeS2WoXr83SnEA" elementType="_ArQH5VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEo1oHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEpFoHEeS2WoXr83SnEA" actual="_ArQH5VoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEpVoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEY1oHEeS2WoXr83SnEA" typedElement="_ArQH9VoHEeS2WoXr83SnEA" elementType="_ArQH-FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEploHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEp1oHEeS2WoXr83SnEA" actual="_ArQH-FoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQEqFoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_ArQHzFoHEeS2WoXr83SnEA"
+ superClass="_ArQEZloHEeS2WoXr83SnEA" typedElement="_ArQH-loHEeS2WoXr83SnEA" elementType="_ArQH_VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEqVoHEeS2WoXr83SnEA" signature="_ArQHzVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEqloHEeS2WoXr83SnEA" actual="_ArQH_VoHEeS2WoXr83SnEA" formal="_ArQHzloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEq1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQExloHEeS2WoXr83SnEA" typedElement="_ArQGZVoHEeS2WoXr83SnEA" elementType="_ArQDUloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQErFoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQErVoHEeS2WoXr83SnEA" actual="_ArQDUloHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQErloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQEyVoHEeS2WoXr83SnEA" typedElement="_ArQF-loHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEr1oHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEsFoHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEsVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQEzFoHEeS2WoXr83SnEA" typedElement="_ArQGL1oHEeS2WoXr83SnEA _ArQGWloHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEsloHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEs1oHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEtFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQE1VoHEeS2WoXr83SnEA" typedElement="_ArQHDloHEeS2WoXr83SnEA" elementType="_ArQHCFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEtVoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEtloHEeS2WoXr83SnEA" actual="_ArQHCFoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEt1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQE2FoHEeS2WoXr83SnEA" typedElement="_ArQFAloHEeS2WoXr83SnEA _ArQGvVoHEeS2WoXr83SnEA _ArQG0VoHEeS2WoXr83SnEA _ArQHCloHEeS2WoXr83SnEA _ArQHGFoHEeS2WoXr83SnEA _ArQHHloHEeS2WoXr83SnEA _ArQHXVoHEeS2WoXr83SnEA"
+ elementType="_ArQHQVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEuFoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEuVoHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEuloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQE6loHEeS2WoXr83SnEA" typedElement="_ArQIMloHEeS2WoXr83SnEA" elementType="_ArQINloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEu1oHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEvFoHEeS2WoXr83SnEA" actual="_ArQINloHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEvVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQE7VoHEeS2WoXr83SnEA" typedElement="_ArQIPVoHEeS2WoXr83SnEA" elementType="_ArQIQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEvloHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEv1oHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEwFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQE8FoHEeS2WoXr83SnEA" typedElement="_ArQIQloHEeS2WoXr83SnEA" elementType="_ArQIRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEwVoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEwloHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQEw1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_ArQIIFoHEeS2WoXr83SnEA"
+ superClass="_ArQE9loHEeS2WoXr83SnEA" typedElement="_ArQIbVoHEeS2WoXr83SnEA _ArQIcFoHEeS2WoXr83SnEA _ArQIc1oHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQExFoHEeS2WoXr83SnEA" signature="_ArQIIVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQExVoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQIIloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQExloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDfFoHEeS2WoXr83SnEA" elementType="_ArQDUloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEx1oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEyFoHEeS2WoXr83SnEA" actual="_ArQDUloHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEyVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDjloHEeS2WoXr83SnEA" elementType="_ArQF2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEyloHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEy1oHEeS2WoXr83SnEA" actual="_ArQF2VoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEzFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDqVoHEeS2WoXr83SnEA" typedElement="_ArQGXFoHEeS2WoXr83SnEA" elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQEzVoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQEzloHEeS2WoXr83SnEA" actual="_ArQGG1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQEz1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDr1oHEeS2WoXr83SnEA" elementType="_ArQGv1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE0FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE0VoHEeS2WoXr83SnEA" actual="_ArQGv1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE0loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDuFoHEeS2WoXr83SnEA" typedElement="_ArQHfVoHEeS2WoXr83SnEA _ArQIJloHEeS2WoXr83SnEA _ArQIbFoHEeS2WoXr83SnEA _ArQIcloHEeS2WoXr83SnEA"
+ elementType="_ArQGyVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE01oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE1FoHEeS2WoXr83SnEA" actual="_ArQGyVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE1VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDu1oHEeS2WoXr83SnEA" elementType="_ArQHCFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE1loHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE11oHEeS2WoXr83SnEA" actual="_ArQHCFoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE2FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDvloHEeS2WoXr83SnEA" elementType="_ArQHQVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE2VoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE2loHEeS2WoXr83SnEA" actual="_ArQHQVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE21oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDyloHEeS2WoXr83SnEA" elementType="_ArQHkVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE3FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE3VoHEeS2WoXr83SnEA" actual="_ArQHkVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE3loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQDzVoHEeS2WoXr83SnEA" elementType="_ArQHpFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE31oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE4FoHEeS2WoXr83SnEA" actual="_ArQHpFoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE4VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD0FoHEeS2WoXr83SnEA" elementType="_ArQHqVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE4loHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE41oHEeS2WoXr83SnEA" actual="_ArQHqVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE5FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD01oHEeS2WoXr83SnEA" elementType="_ArQHeloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE5VoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE5loHEeS2WoXr83SnEA" actual="_ArQHeloHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE51oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD5VoHEeS2WoXr83SnEA" elementType="_ArQHz1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE6FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE6VoHEeS2WoXr83SnEA" actual="_ArQHz1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE6loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD7loHEeS2WoXr83SnEA" elementType="_ArQINloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE61oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE7FoHEeS2WoXr83SnEA" actual="_ArQINloHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE7VoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD8VoHEeS2WoXr83SnEA" elementType="_ArQIQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE7loHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE71oHEeS2WoXr83SnEA" actual="_ArQIQFoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE8FoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD9FoHEeS2WoXr83SnEA" elementType="_ArQIRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE8VoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE8loHEeS2WoXr83SnEA" actual="_ArQIRVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE81oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD91oHEeS2WoXr83SnEA" elementType="_ArQII1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE9FoHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE9VoHEeS2WoXr83SnEA" actual="_ArQII1oHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQE9loHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_ArQIZloHEeS2WoXr83SnEA"
+ superClass="_ArQD-loHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQE91oHEeS2WoXr83SnEA" signature="_ArQIZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQE-FoHEeS2WoXr83SnEA" actual="_ArQIaVoHEeS2WoXr83SnEA" formal="_ArQIaFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_ArQE-VoHEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <ownedComment xmi:id="_ArQE-loHEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.
This sub clause contains all standard types defined within OCL, including all the operations defined on those types.
For each operation the signature and a description of the semantics is given.
Within the description, the reserved word ‘result’ is used to refer to the value that results from evaluating the operation.
In several places, post conditions are used to describe properties of the result.
When there is more than one postcondition, all postconditions must be true.
A similar thing is true for multiple preconditions.
If these are used, the operation is only defined if all preconditions evaluate to oclText[true].

heading:1[Introduction]

The structure, syntax, and semantics of the OCL is defined in Clauses 8 (“Abstract Syntax”), 9 (“Concrete Syntax”),
and 10 (“Semantics Described using UML”).
This sub clause adds another part to the OCL definition: a library of predefined types and operations.
Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,
where the language definition and the standard libraries are both mandatory parts of the complete language definition.

The OCL standard library defines a number of types.
It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.
These are familiar from many other languages. The second part of the standard library consists of the collection types.
They are Bag, Set, Sequence, and Collection where Collection is an abstract type.
Note that all types defined in the OCL standard library are instances of an abstract syntax class.
The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.

Next to definitions of types the OCL standard library defines a number of template expressions.
Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.
For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.

The Standard Library may be extended with new types, new operations and new iterators.
In particular new operations can be defined for collections.

Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted
in an appropriate fashion.
A locale is defined as a concatenation of up to three character sequences separated by underscores,
with the first sequence identifying the language and the second sequence identifying the country.
The third sequence is empty but may encode an implementation-specific variant.
Trailing empty strings and separators may be omitted.

The character sequences for languages are defined by ISO 639.

The character sequences for countries are defined by ISO 3166.

‘fr_CA’ therefore identifies the locale for the French language in the Canada country.

Comparison of strings and consequently the collation order of Collection::sortedBy()
conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.

The locale is ‘en_us’ by default but may be configured by a property constraint on OclAny::oclLocale.

The prevailing locale is defined by the prevailing value of oclLocale within the current environment;
it may therefore be changed temporarily by using a Let expression.
let oclLocale : String = ‘fr_CA’ in aString.toUpperCase()

heading:1[Iterators]

This sub clause defines the standard OCL iterator expressions.
In the abstract syntax these are all instances of IteratorExp.
These iterator expressions always have a collection expression as their source,
as is defined in the well-formedness rules in Clause 8 (“Abstract Syntax”).
The defined iterator expressions are shown per source collection type.
The semantics of each iterator expression is defined through a mapping from the iterator to the ‘iterate’ construct.
This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.

In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,
and the righthand side of the equals sign is the equivalent as an IterateExp.
The names source, body, and iterator refer to the role names in the abstract syntax:

source	The source expression of the IteratorExp.

body	The body expression of the IteratorExp.

iterator	The iterator variable of the IteratorExp.

result	The result variable of the IterateExp.

heading:2[Extending the Standard Library with Iterator Expressions]

It is possible to add new iterator expressions in the standard library.
If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,
in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQE-1oHEeS2WoXr83SnEA" name="Boolean" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_ArQE_FoHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQE_VoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_ArQE_loHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQE_1oHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFAFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_ArQFAVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFAloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+ <ownedComment xmi:id="_ArQFA1oHEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFBFoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isInvalidating="true" isValidating="true" precedence="_ArQIgFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFBVoHEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[true]."/>
+ <bodyExpression xmi:id="_ArQFBloHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = false then false
+ else self
+ endif endif
+ else if self = false then false
+ else if b.oclIsInvalid() then b
+ else if b = false then false
+ else if self = null then null
+ else if b = null then null
+ else true
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_ArQFB1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFCFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isInvalidating="true" isValidating="true" precedence="_ArQIg1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFCVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_ArQFCloHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = false then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then b
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_ArQFC1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFDFoHEeS2WoXr83SnEA" name="not" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+ precedence="_ArQIe1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFDVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].
oclText[false] if oclText[self] is oclText[true].
oclText[null] if oclText[self] is oclText[null].
Otherwise oclText[invalid]."/>
+ <bodyExpression xmi:id="_ArQFDloHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if self = null then null
+ else self = false
+ endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFD1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+ isInvalidating="true" isValidating="true" precedence="_ArQIgVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFEFoHEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_ArQFEVoHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = true then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then null
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_ArQFEloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFE1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_ArQFFFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFFVoHEeS2WoXr83SnEA" name="xor" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+ precedence="_ArQIgloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFFloHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].
oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null]."/>
+ <bodyExpression xmi:id="_ArQFF1oHEeS2WoXr83SnEA" type="_ArQE-1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if b.oclIsInvalid() then b
+ else if self = null then null
+ else if b = null then null
+ else self <> b
+ endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_ArQFGFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQE_FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQE_1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFBFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFBloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFB1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFCloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFC1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFDFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFDloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFD1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFEVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFEloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFFVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_ArQFF1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFGFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFSloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFTVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFU1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFVloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFWVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFcVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFdFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFd1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFeVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFe1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFfloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFjFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFj1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFmFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFpVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFtFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFzFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQF2loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQF3FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGI1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGJloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGNFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGN1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGSFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGS1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGXVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGY1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGjloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGkloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGlloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGmloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGnloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_ArQGqVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGy1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQGzloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG2VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG3FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG3loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG5FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG5loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG7FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG-VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG_FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG_1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHAloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHEloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHFVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHGloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHG1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHHFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHHVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHJFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHJVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHKloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHL1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHMVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHMloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHOVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHO1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHPVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHTVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHT1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHU1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHWFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHWloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHX1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHYFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHYVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHYloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHY1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHZFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHZVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQHZloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHfloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHgFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQH0FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQH0loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQIJ1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQIKVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQCy1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQCzFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQCz1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQC1loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQC11oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQC2loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQDAloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDA1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDBloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="mitosi.xml#_ArQDCloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDC1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDH1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="mitosi.xml#_ArQDI1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFGVoHEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_ArQDeFoHEeS2WoXr83SnEA _ArQEO1oHEeS2WoXr83SnEA _ArQEjFoHEeS2WoXr83SnEA"
+ superClass="_ArQFO1oHEeS2WoXr83SnEA" typedElement="_ArQFGloHEeS2WoXr83SnEA _ArQFHVoHEeS2WoXr83SnEA _ArQFIFoHEeS2WoXr83SnEA _ArQFIloHEeS2WoXr83SnEA _ArQFKFoHEeS2WoXr83SnEA _ArQFKloHEeS2WoXr83SnEA _ArQFLVoHEeS2WoXr83SnEA _ArQFL1oHEeS2WoXr83SnEA _ArQFMFoHEeS2WoXr83SnEA _ArQFM1oHEeS2WoXr83SnEA _ArQFNloHEeS2WoXr83SnEA _ArQFOFoHEeS2WoXr83SnEA _ArQFXloHEeS2WoXr83SnEA _ArQFYVoHEeS2WoXr83SnEA _ArQFaVoHEeS2WoXr83SnEA _ArQFg1oHEeS2WoXr83SnEA _ArQFhloHEeS2WoXr83SnEA _ArQFkloHEeS2WoXr83SnEA _ArQFlVoHEeS2WoXr83SnEA _ArQFo1oHEeS2WoXr83SnEA _ArQFsloHEeS2WoXr83SnEA _ArQFs1oHEeS2WoXr83SnEA _ArQFtloHEeS2WoXr83SnEA _ArQGH1oHEeS2WoXr83SnEA _ArQGIVoHEeS2WoXr83SnEA _ArQGMVoHEeS2WoXr83SnEA _ArQGdVoHEeS2WoXr83SnEA _ArQHBVoHEeS2WoXr83SnEA _ArQHb1oHEeS2WoXr83SnEA _ArQHcloHEeS2WoXr83SnEA _ArQHl1oHEeS2WoXr83SnEA _ArQHrVoHEeS2WoXr83SnEA _ArQHrloHEeS2WoXr83SnEA _ArQH61oHEeS2WoXr83SnEA _ArQIAVoHEeS2WoXr83SnEA _ArQIAloHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_ArQFGloHEeS2WoXr83SnEA" name="*" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_ArQIfFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFG1oHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+ <ownedParameter xmi:id="_ArQFHFoHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFHVoHEeS2WoXr83SnEA" name="+" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFHloHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+ <ownedParameter xmi:id="_ArQFH1oHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFIFoHEeS2WoXr83SnEA" name="-" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_ArQIe1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFIVoHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFIloHEeS2WoXr83SnEA" name="-" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFI1oHEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+ <ownedParameter xmi:id="_ArQFJFoHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFJVoHEeS2WoXr83SnEA" name="/" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_ArQIfFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFJloHEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.
Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_ArQFJ1oHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFKFoHEeS2WoXr83SnEA" name="abs" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_ArQFKVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFKloHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_ArQFK1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_ArQFLFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFLVoHEeS2WoXr83SnEA" name="div" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+ <ownedComment xmi:id="_ArQFLloHEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+ <ownedParameter xmi:id="_ArQFL1oHEeS2WoXr83SnEA" name="i" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFMFoHEeS2WoXr83SnEA" name="max" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_ArQFMVoHEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_ArQFMloHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFM1oHEeS2WoXr83SnEA" name="min" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_ArQFNFoHEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_ArQFNVoHEeS2WoXr83SnEA" name="i" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFNloHEeS2WoXr83SnEA" name="mod" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+ <ownedComment xmi:id="_ArQFN1oHEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+ <ownedParameter xmi:id="_ArQFOFoHEeS2WoXr83SnEA" name="i" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFOVoHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_ArQFOloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFO1oHEeS2WoXr83SnEA" name="Real" superClass="_ArQG91oHEeS2WoXr83SnEA _ArQHRFoHEeS2WoXr83SnEA"
+ typedElement="_ArQFJVoHEeS2WoXr83SnEA _ArQFPFoHEeS2WoXr83SnEA _ArQFP1oHEeS2WoXr83SnEA _ArQFQloHEeS2WoXr83SnEA _ArQFRFoHEeS2WoXr83SnEA _ArQFR1oHEeS2WoXr83SnEA _ArQFXFoHEeS2WoXr83SnEA _ArQFY1oHEeS2WoXr83SnEA _ArQFZloHEeS2WoXr83SnEA _ArQFvFoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_ArQFPFoHEeS2WoXr83SnEA" name="*" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_ArQIfFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFPVoHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+ <ownedParameter xmi:id="_ArQFPloHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFP1oHEeS2WoXr83SnEA" name="+" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFQFoHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+ <ownedParameter xmi:id="_ArQFQVoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFQloHEeS2WoXr83SnEA" name="-" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_ArQIe1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFQ1oHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFRFoHEeS2WoXr83SnEA" name="-" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFRVoHEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+ <ownedParameter xmi:id="_ArQFRloHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFR1oHEeS2WoXr83SnEA" name="/" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_ArQIfFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFSFoHEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_ArQFSVoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFSloHEeS2WoXr83SnEA" name="<" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFS1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+ <ownedParameter xmi:id="_ArQFTFoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFTVoHEeS2WoXr83SnEA" name="<=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFTloHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+ <ownedParameter xmi:id="_ArQFT1oHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFUFoHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFUVoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_ArQFUloHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFU1oHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFVFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_ArQFVVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFVloHEeS2WoXr83SnEA" name=">" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFV1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+ <ownedParameter xmi:id="_ArQFWFoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFWVoHEeS2WoXr83SnEA" name=">=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFWloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+ <ownedParameter xmi:id="_ArQFW1oHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFXFoHEeS2WoXr83SnEA" name="abs" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_ArQFXVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFXloHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_ArQFX1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_ArQFYFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFYVoHEeS2WoXr83SnEA" name="floor" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+ <ownedComment xmi:id="_ArQFYloHEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFY1oHEeS2WoXr83SnEA" name="max" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_ArQFZFoHEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_ArQFZVoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFZloHEeS2WoXr83SnEA" name="min" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_ArQFZ1oHEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_ArQFaFoHEeS2WoXr83SnEA" name="r" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFaVoHEeS2WoXr83SnEA" name="round" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+ <ownedComment xmi:id="_ArQFaloHEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFa1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_ArQFbFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFbVoHEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_ArQDe1oHEeS2WoXr83SnEA _ArQEPloHEeS2WoXr83SnEA _ArQEj1oHEeS2WoXr83SnEA"
+ superClass="_ArQG91oHEeS2WoXr83SnEA _ArQHRFoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_ArQFbloHEeS2WoXr83SnEA" name="+" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFb1oHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_ArQFcFoHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFcVoHEeS2WoXr83SnEA" name="<" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFcloHEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_ArQFc1oHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFdFoHEeS2WoXr83SnEA" name="<=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFdVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_ArQFdloHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFd1oHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQFeFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFeVoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQFeloHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFe1oHEeS2WoXr83SnEA" name=">" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFfFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_ArQFfVoHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFfloHEeS2WoXr83SnEA" name=">=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQFf1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_ArQFgFoHEeS2WoXr83SnEA" name="s" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFgVoHEeS2WoXr83SnEA" name="at" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQFgloHEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+ <ownedParameter xmi:id="_ArQFg1oHEeS2WoXr83SnEA" name="i" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFhFoHEeS2WoXr83SnEA" name="characters" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+ <ownedComment xmi:id="_ArQFhVoHEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFhloHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+ <ownedComment xmi:id="_ArQFh1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_ArQFiFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFiVoHEeS2WoXr83SnEA" name="concat" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+ <ownedComment xmi:id="_ArQFiloHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_ArQFi1oHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFjFoHEeS2WoXr83SnEA" name="endsWith" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+ <ownedComment xmi:id="_ArQFjVoHEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.
Every string ends with the empty string."/>
+ <ownedParameter xmi:id="_ArQFjloHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFj1oHEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+ <ownedComment xmi:id="_ArQFkFoHEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+ <ownedParameter xmi:id="_ArQFkVoHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFkloHEeS2WoXr83SnEA" name="indexOf" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+ <ownedComment xmi:id="_ArQFk1oHEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_ArQFlFoHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFlVoHEeS2WoXr83SnEA" name="lastIndexOf" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+ <ownedComment xmi:id="_ArQFlloHEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_ArQFl1oHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFmFoHEeS2WoXr83SnEA" name="matches" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+ <ownedComment xmi:id="_ArQFmVoHEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+ <ownedParameter xmi:id="_ArQFmloHEeS2WoXr83SnEA" name="regex" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFm1oHEeS2WoXr83SnEA" name="replaceAll" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQFnFoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+ <ownedParameter xmi:id="_ArQFnVoHEeS2WoXr83SnEA" name="regex" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQFnloHEeS2WoXr83SnEA" name="replacement" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFn1oHEeS2WoXr83SnEA" name="replaceFirst" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQFoFoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+ <ownedParameter xmi:id="_ArQFoVoHEeS2WoXr83SnEA" name="regex" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQFoloHEeS2WoXr83SnEA" name="replacement" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFo1oHEeS2WoXr83SnEA" name="size" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+ <ownedComment xmi:id="_ArQFpFoHEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFpVoHEeS2WoXr83SnEA" name="startsWith" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+ <ownedComment xmi:id="_ArQFploHEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.
Every string starts with the empty string."/>
+ <ownedParameter xmi:id="_ArQFp1oHEeS2WoXr83SnEA" name="s" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFqFoHEeS2WoXr83SnEA" name="substituteAll" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+ <ownedComment xmi:id="_ArQFqVoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+ <ownedParameter xmi:id="_ArQFqloHEeS2WoXr83SnEA" name="oldSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQFq1oHEeS2WoXr83SnEA" name="newSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFrFoHEeS2WoXr83SnEA" name="substituteFirst" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+ <ownedComment xmi:id="_ArQFrVoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.
Returns invalid if there is no first occurrence."/>
+ <ownedParameter xmi:id="_ArQFrloHEeS2WoXr83SnEA" name="oldSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQFr1oHEeS2WoXr83SnEA" name="newSubstring" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFsFoHEeS2WoXr83SnEA" name="substring" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQFsVoHEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+ <ownedParameter xmi:id="_ArQFsloHEeS2WoXr83SnEA" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQFs1oHEeS2WoXr83SnEA" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFtFoHEeS2WoXr83SnEA" name="toBoolean" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQFtVoHEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFtloHEeS2WoXr83SnEA" name="toInteger" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQFt1oHEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFuFoHEeS2WoXr83SnEA" name="toLower" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_ArQFuVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFuloHEeS2WoXr83SnEA" name="toLowerCase" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_ArQFu1oHEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFvFoHEeS2WoXr83SnEA" name="toReal" type="_ArQFO1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQFvVoHEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFvloHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_ArQFv1oHEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFwFoHEeS2WoXr83SnEA" name="toUpper" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_ArQFwVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFwloHEeS2WoXr83SnEA" name="toUpperCase" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_ArQFw1oHEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFxFoHEeS2WoXr83SnEA" name="tokenize" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_ArQFxVoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.
The delimiters are omitted from the return."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFxloHEeS2WoXr83SnEA" name="tokenize" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_ArQFx1oHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+ <ownedParameter xmi:id="_ArQFyFoHEeS2WoXr83SnEA" name="delimiters" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFyVoHEeS2WoXr83SnEA" name="tokenize" type="_ArQEjVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_ArQFyloHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is
true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+ <ownedParameter xmi:id="_ArQFy1oHEeS2WoXr83SnEA" name="delimiters" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQFzFoHEeS2WoXr83SnEA" name="returnDelimiters" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQFzVoHEeS2WoXr83SnEA" name="trim" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+ <ownedComment xmi:id="_ArQFzloHEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFE1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFOVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFa1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFbloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFcFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFgVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFiVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFi1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFjloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFkVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFlFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFl1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFmloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFm1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFnVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFnloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFn1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFoVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFoloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFp1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFqFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFqloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFq1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFrFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFrloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFr1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFsFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFuFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFuloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFvloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFwFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFwloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFyFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQFy1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQFzVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_ArQG8loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQG9VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHM1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_ArQHZ1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_ArQIiloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCqloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="mitosi.xml#_ArQCrFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCsVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCsloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCuloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCwVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCxFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC21oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="mitosi.xml#_ArQC3FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC3loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC4FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC5VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC5loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC51oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC71oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC9loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC-VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_ArQFz1oHEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_ArQFGVoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_ArQF0FoHEeS2WoXr83SnEA" name="oclAsType" type="_ArQF1FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+ <ownedComment xmi:id="_ArQF0VoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to
Real or Integer, but the e[unlimited] value may not.
Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+ <ownedTemplateSignature xmi:id="_ArQF0loHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF01oHEeS2WoXr83SnEA" parameteredElement="_ArQF1FoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF1FoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQF01oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD_1oHEeS2WoXr83SnEA" typedElement="_ArQF0FoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQF1VoHEeS2WoXr83SnEA" name="type" type="_ArQD_VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_ArQF1loHEeS2WoXr83SnEA" name="Bag" superClass="_ArQDjloHEeS2WoXr83SnEA" typedElement="_ArQF31oHEeS2WoXr83SnEA _ArQF4loHEeS2WoXr83SnEA _ArQF6loHEeS2WoXr83SnEA _ArQF7VoHEeS2WoXr83SnEA _ArQGC1oHEeS2WoXr83SnEA _ArQGD1oHEeS2WoXr83SnEA"
+ elementType="_ArQF2VoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQF11oHEeS2WoXr83SnEA" templateBinding="_ArQDVloHEeS2WoXr83SnEA _ArQDWVoHEeS2WoXr83SnEA _ArQDXFoHEeS2WoXr83SnEA _ArQDX1oHEeS2WoXr83SnEA _ArQDYloHEeS2WoXr83SnEA _ArQDZVoHEeS2WoXr83SnEA _ArQDaFoHEeS2WoXr83SnEA _ArQDa1oHEeS2WoXr83SnEA _ArQDbloHEeS2WoXr83SnEA _ArQDcVoHEeS2WoXr83SnEA _ArQDdFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF2FoHEeS2WoXr83SnEA" parameteredElement="_ArQF2VoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDV1oHEeS2WoXr83SnEA _ArQDWloHEeS2WoXr83SnEA _ArQDXVoHEeS2WoXr83SnEA _ArQDYFoHEeS2WoXr83SnEA _ArQDY1oHEeS2WoXr83SnEA _ArQDZloHEeS2WoXr83SnEA _ArQDaVoHEeS2WoXr83SnEA _ArQDbFoHEeS2WoXr83SnEA _ArQDb1oHEeS2WoXr83SnEA _ArQDcloHEeS2WoXr83SnEA _ArQDdVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF2VoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQF2FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDkFoHEeS2WoXr83SnEA _ArQEQVoHEeS2WoXr83SnEA _ArQEkloHEeS2WoXr83SnEA _ArQEsFoHEeS2WoXr83SnEA _ArQEy1oHEeS2WoXr83SnEA"
+ typedElement="_ArQF7FoHEeS2WoXr83SnEA _ArQF_VoHEeS2WoXr83SnEA _ArQGBFoHEeS2WoXr83SnEA _ArQGCloHEeS2WoXr83SnEA _ArQGDloHEeS2WoXr83SnEA _ArQGEloHEeS2WoXr83SnEA _ArQGFloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_ArQF2loHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQF21oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF3FoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQF3VoHEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+ <ownedParameter xmi:id="_ArQF3loHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF31oHEeS2WoXr83SnEA" name="excluding" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_ArQF4FoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+ <ownedParameter xmi:id="_ArQF4VoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF4loHEeS2WoXr83SnEA" name="excludingAll" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_ArQF41oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_ArQF5FoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF5VoHEeS2WoXr83SnEA" name="flatten" type="_ArQDW1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_ArQF5loHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].
If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_ArQF51oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF6FoHEeS2WoXr83SnEA" parameteredElement="_ArQF6VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF6VoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQF6FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDXVoHEeS2WoXr83SnEA _ArQDh1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF6loHEeS2WoXr83SnEA" name="including" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_ArQF61oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_ArQF7FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF7VoHEeS2WoXr83SnEA" name="includingAll" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_ArQF7loHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_ArQF71oHEeS2WoXr83SnEA" name="objects" type="_ArQDjloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF8FoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQDXloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_ArQF8VoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF8loHEeS2WoXr83SnEA" parameteredElement="_ArQF81oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF81oHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQF8loHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDYFoHEeS2WoXr83SnEA _ArQDiloHEeS2WoXr83SnEA _ArQEAloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQF9FoHEeS2WoXr83SnEA" name="type" type="_ArQEAFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQF9VoHEeS2WoXr83SnEA" name="selectByType" type="_ArQDYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_ArQF9loHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQF91oHEeS2WoXr83SnEA" parameteredElement="_ArQF-FoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQF-FoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQF91oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDY1oHEeS2WoXr83SnEA _ArQDjVoHEeS2WoXr83SnEA _ArQEBVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQF-VoHEeS2WoXr83SnEA" name="type" type="_ArQEA1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQF-loHEeS2WoXr83SnEA" name="closure" type="_ArQErloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_ArQF-1oHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_ArQF_FoHEeS2WoXr83SnEA" name="lambda" type="_ArQDPFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQF_VoHEeS2WoXr83SnEA" name="i" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQF_loHEeS2WoXr83SnEA" name="collectNested" type="_ArQDVVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_ArQF_1oHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_ArQGAFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGAVoHEeS2WoXr83SnEA" parameteredElement="_ArQGAloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGAloHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGAVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDV1oHEeS2WoXr83SnEA _ArQDgVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGA1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDOVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGBFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGBVoHEeS2WoXr83SnEA" name="collect" type="_ArQDWFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_ArQGBloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGB1oHEeS2WoXr83SnEA" parameteredElement="_ArQGCFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGCFoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGB1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDWloHEeS2WoXr83SnEA _ArQDhFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGCVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDOloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGCloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGC1oHEeS2WoXr83SnEA" name="reject" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_ArQGDFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].

oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+ <ownedParameter xmi:id="_ArQGDVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDOFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGDloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGD1oHEeS2WoXr83SnEA" name="select" type="_ArQF1loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_ArQGEFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].

oclCode[self->select(iterator | body) =
self->iterate(iterator; result : Bag(T) = Bag{} |
if body then result->including(iterator)
else result
endif)]"/>
+ <ownedParameter xmi:id="_ArQGEVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDOFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGEloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGE1oHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEkFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_ArQGFFoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_ArQGFVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDO1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGFloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQF2VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQGF1oHEeS2WoXr83SnEA" name="Class" superClass="_ArQGyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQGGFoHEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_ArQDaVoHEeS2WoXr83SnEA _ArQDrloHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQGPVoHEeS2WoXr83SnEA _ArQGQFoHEeS2WoXr83SnEA _ArQGUVoHEeS2WoXr83SnEA _ArQGVFoHEeS2WoXr83SnEA _ArQGVloHEeS2WoXr83SnEA _ArQGWVoHEeS2WoXr83SnEA _ArQGe1oHEeS2WoXr83SnEA _ArQGrVoHEeS2WoXr83SnEA _ArQGsVoHEeS2WoXr83SnEA"
+ elementType="_ArQGG1oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQGGVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGGloHEeS2WoXr83SnEA" parameteredElement="_ArQGG1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGG1oHEeS2WoXr83SnEA" name="T" templateParameter="_ArQGGloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDZloHEeS2WoXr83SnEA _ArQDq1oHEeS2WoXr83SnEA _ArQERFoHEeS2WoXr83SnEA _ArQEdFoHEeS2WoXr83SnEA _ArQElVoHEeS2WoXr83SnEA _ArQEs1oHEeS2WoXr83SnEA _ArQEzloHEeS2WoXr83SnEA"
+ typedElement="_ArQDU1oHEeS2WoXr83SnEA _ArQGHVoHEeS2WoXr83SnEA _ArQGU1oHEeS2WoXr83SnEA _ArQGX1oHEeS2WoXr83SnEA _ArQGYVoHEeS2WoXr83SnEA _ArQGd1oHEeS2WoXr83SnEA _ArQGfFoHEeS2WoXr83SnEA _ArQGf1oHEeS2WoXr83SnEA _ArQGhloHEeS2WoXr83SnEA _ArQGjVoHEeS2WoXr83SnEA _ArQGkFoHEeS2WoXr83SnEA _ArQGkVoHEeS2WoXr83SnEA _ArQGlVoHEeS2WoXr83SnEA _ArQGmFoHEeS2WoXr83SnEA _ArQGmVoHEeS2WoXr83SnEA _ArQGnVoHEeS2WoXr83SnEA _ArQGoVoHEeS2WoXr83SnEA _ArQGqFoHEeS2WoXr83SnEA _ArQGrFoHEeS2WoXr83SnEA _ArQGsFoHEeS2WoXr83SnEA _ArQGtFoHEeS2WoXr83SnEA _ArQGuFoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_ArQGHFoHEeS2WoXr83SnEA" name="Collection" type="_ArQDZ1oHEeS2WoXr83SnEA" implicit="true" opposite="_ArQGHVoHEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ <templateParameterSubstitution href="#_ArQDeFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDe1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDfloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDgVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDhFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDh1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDiloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDjVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDkFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDk1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDlloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDmVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDnFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDn1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDoloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDpVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDqFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDq1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDrloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDsVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDtFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDt1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDuloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDvVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDwFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDw1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDxloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDyVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDzFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQDz1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD0loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD1VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD2FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD21oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD3loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD4VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD5FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD51oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD6loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD7VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD8FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD81oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD9loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD-VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQD_FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_ArQIkVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="mitosi.xml#_ArQDLFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="javaMM.xml#_ArQIrFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="javaMM.xml#_ArQIr1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#_ArQDd1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDeloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDfVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDgFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDg1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDhloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDiVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDjFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDj1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDkloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDlVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDmFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDm1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDnloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDoVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDpFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDp1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDqloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDrVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDsFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDs1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDtloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDuVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDvFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDv1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDwloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDxVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDyFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDy1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQDzloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD0VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD1FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD11oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD2loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD3VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD4FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD41oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD5loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD6VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD7FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD71oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD8loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD9VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD-FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQD-1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_ArQIkFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="mitosi.xml#_ArQDK1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="javaMM.xml#_ArQIq1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="javaMM.xml#_ArQIrloHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_ArQGHVoHEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+ opposite="_ArQGHFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGHloHEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQGH1oHEeS2WoXr83SnEA" isStatic="true" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+ <ownedComment xmi:id="_ArQGIFoHEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQGIVoHEeS2WoXr83SnEA" isStatic="true" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+ <ownedComment xmi:id="_ArQGIloHEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_ArQGI1oHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGJFoHEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+ <ownedParameter xmi:id="_ArQGJVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGJloHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGJ1oHEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,
in the case of an ordered collection type."/>
+ <ownedParameter xmi:id="_ArQGKFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGKVoHEeS2WoXr83SnEA" name="asBag" type="_ArQDZFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+ <ownedComment xmi:id="_ArQGKloHEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGK1oHEeS2WoXr83SnEA" name="asOrderedSet" type="_ArQEcloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+ <ownedComment xmi:id="_ArQGLFoHEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,
in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGLVoHEeS2WoXr83SnEA" name="asSequence" type="_ArQEk1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+ <ownedComment xmi:id="_ArQGLloHEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGL1oHEeS2WoXr83SnEA" name="asSet" type="_ArQEsVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+ <ownedComment xmi:id="_ArQGMFoHEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGMVoHEeS2WoXr83SnEA" name="count" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+ <ownedComment xmi:id="_ArQGMloHEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+ <ownedParameter xmi:id="_ArQGM1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGNFoHEeS2WoXr83SnEA" name="excludes" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+ <ownedComment xmi:id="_ArQGNVoHEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_ArQGNloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGN1oHEeS2WoXr83SnEA" name="excludesAll" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+ <ownedComment xmi:id="_ArQGOFoHEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_ArQGOVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGOloHEeS2WoXr83SnEA" parameteredElement="_ArQGO1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGO1oHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGOloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDmVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGPFoHEeS2WoXr83SnEA" name="c2" type="_ArQDl1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGPVoHEeS2WoXr83SnEA" name="excluding" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_ArQGPloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+ <ownedParameter xmi:id="_ArQGP1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGQFoHEeS2WoXr83SnEA" name="excludingAll" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_ArQGQVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_ArQGQloHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGQ1oHEeS2WoXr83SnEA" name="flatten" type="_ArQDmloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_ArQGRFoHEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].
If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_ArQGRVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGRloHEeS2WoXr83SnEA" parameteredElement="_ArQGR1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGR1oHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGRloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDnFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGSFoHEeS2WoXr83SnEA" name="includes" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+ <ownedComment xmi:id="_ArQGSVoHEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_ArQGSloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGS1oHEeS2WoXr83SnEA" name="includesAll" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+ <ownedComment xmi:id="_ArQGTFoHEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_ArQGTVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGTloHEeS2WoXr83SnEA" parameteredElement="_ArQGT1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGT1oHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGTloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDn1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGUFoHEeS2WoXr83SnEA" name="c2" type="_ArQDnVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGUVoHEeS2WoXr83SnEA" name="including" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_ArQGUloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_ArQGU1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGVFoHEeS2WoXr83SnEA" name="includingAll" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_ArQGVVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_ArQGVloHEeS2WoXr83SnEA" name="objects" type="_ArQGGFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGV1oHEeS2WoXr83SnEA" name="intersection" type="_ArQDZFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_ArQGWFoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+ <ownedParameter xmi:id="_ArQGWVoHEeS2WoXr83SnEA" name="c" type="_ArQGGFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGWloHEeS2WoXr83SnEA" name="intersection" type="_ArQEsVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_ArQGW1oHEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+ <ownedParameter xmi:id="_ArQGXFoHEeS2WoXr83SnEA" name="u" type="_ArQEzFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGXVoHEeS2WoXr83SnEA" name="isEmpty" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+ <ownedComment xmi:id="_ArQGXloHEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?

Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGX1oHEeS2WoXr83SnEA" name="max" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+ <ownedComment xmi:id="_ArQGYFoHEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].
Elements must be of a type supporting the max operation.
The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGYVoHEeS2WoXr83SnEA" name="min" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+ <ownedComment xmi:id="_ArQGYloHEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].
Elements must be of a type supporting the min operation.
The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGY1oHEeS2WoXr83SnEA" name="notEmpty" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+ <ownedComment xmi:id="_ArQGZFoHEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?

oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGZVoHEeS2WoXr83SnEA" name="product" type="_ArQEq1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+ <ownedComment xmi:id="_ArQGZloHEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+ <ownedTemplateSignature xmi:id="_ArQGZ1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGaFoHEeS2WoXr83SnEA" parameteredElement="_ArQGaVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGaVoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQGaFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDoloHEeS2WoXr83SnEA" typedElement="_ArQDVFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGaloHEeS2WoXr83SnEA" name="c2" type="_ArQDoFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGa1oHEeS2WoXr83SnEA" name="selectByKind" type="_ArQDo1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_ArQGbFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGbVoHEeS2WoXr83SnEA" parameteredElement="_ArQGbloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGbloHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQGbVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDpVoHEeS2WoXr83SnEA _ArQECFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGb1oHEeS2WoXr83SnEA" name="type" type="_ArQEBloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGcFoHEeS2WoXr83SnEA" name="selectByType" type="_ArQDploHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_ArQGcVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGcloHEeS2WoXr83SnEA" parameteredElement="_ArQGc1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGc1oHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQGcloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDqFoHEeS2WoXr83SnEA _ArQEC1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGdFoHEeS2WoXr83SnEA" name="type" type="_ArQECVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGdVoHEeS2WoXr83SnEA" name="size" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+ <ownedComment xmi:id="_ArQGdloHEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGd1oHEeS2WoXr83SnEA" name="sum" type="_ArQGG1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+ <ownedComment xmi:id="_ArQGeFoHEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].
Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.
The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).
UnlimitedNatural, Integer and Real fulfill this condition.

If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,
which may result in unpredictable results during evaluation.
If an implementation is able to detect a lack of associativity or commutativity,
the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGeVoHEeS2WoXr83SnEA" name="union" type="_ArQDZFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_ArQGeloHEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+ <ownedParameter xmi:id="_ArQGe1oHEeS2WoXr83SnEA" name="c" type="_ArQGGFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGfFoHEeS2WoXr83SnEA" name="any" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+ <ownedComment xmi:id="_ArQGfVoHEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].
If there is more than one element for which body is oclText[true], one of them is returned.
There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+ <ownedParameter xmi:id="_ArQGfloHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGf1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGgFoHEeS2WoXr83SnEA" name="collectNested" type="_ArQDkVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_ArQGgVoHEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+ <ownedTemplateSignature xmi:id="_ArQGgloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGg1oHEeS2WoXr83SnEA" parameteredElement="_ArQGhFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGhFoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGg1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDk1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGhVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGhloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGh1oHEeS2WoXr83SnEA" name="collect" type="_ArQDlFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedComment xmi:id="_ArQGiFoHEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.
The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.
collectNested is defined individually for each subclass of CollectionType."/>
+ <ownedTemplateSignature xmi:id="_ArQGiVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGiloHEeS2WoXr83SnEA" parameteredElement="_ArQGi1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGi1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQGiloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDlloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGjFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDP1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGjVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGjloHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedParameter xmi:id="_ArQGj1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGkFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGkVoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGkloHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedComment xmi:id="_ArQGk1oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+ <ownedParameter xmi:id="_ArQGlFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGlVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGlloHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedParameter xmi:id="_ArQGl1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGmFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGmVoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGmloHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedComment xmi:id="_ArQGm1oHEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_ArQGnFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGnVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGnloHEeS2WoXr83SnEA" name="isUnique" type="_ArQE-1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+ <ownedComment xmi:id="_ArQGn1oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_ArQGoFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDQVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGoVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGoloHEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_ArQGpVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+ <ownedTemplateSignature xmi:id="_ArQGo1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGpFoHEeS2WoXr83SnEA" parameteredElement="_ArQGpVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGpVoHEeS2WoXr83SnEA" name="Tacc" templateParameter="_ArQGpFoHEeS2WoXr83SnEA"
+ typedElement="_ArQGoloHEeS2WoXr83SnEA _ArQGp1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQGploHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDQFoHEeS2WoXr83SnEA"/>
+ <ownedAccumulator xmi:id="_ArQGp1oHEeS2WoXr83SnEA" name="acc" isRequired="false" type="_ArQGpVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGqFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGqVoHEeS2WoXr83SnEA" name="one" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+ <ownedComment xmi:id="_ArQGqloHEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_ArQGq1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGrFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGrVoHEeS2WoXr83SnEA" name="reject" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_ArQGrloHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_ArQGr1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGsFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGsVoHEeS2WoXr83SnEA" name="select" type="_ArQGGFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_ArQGsloHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_ArQGs1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDPVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGtFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQGtVoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEk1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_ArQGtloHEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_ArQGt1oHEeS2WoXr83SnEA" name="lambda" type="_ArQDQVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQGuFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQGG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQGuVoHEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_ArQDbFoHEeS2WoXr83SnEA _ArQDtFoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGuloHEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+ <ownedAttribute xmi:id="_ArQGu1oHEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_ArQEdVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+ opposite="_ArQGwVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGvFoHEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_ArQGvVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+ <ownedComment xmi:id="_ArQGvloHEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQGv1oHEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_ArQDsVoHEeS2WoXr83SnEA _ArQER1oHEeS2WoXr83SnEA _ArQEd1oHEeS2WoXr83SnEA _ArQE0VoHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGwFoHEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+ <ownedAttribute xmi:id="_ArQGwVoHEeS2WoXr83SnEA" name="Enumeration" type="_ArQDaloHEeS2WoXr83SnEA" implicit="true" opposite="_ArQGu1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_ArQGwloHEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_ArQDb1oHEeS2WoXr83SnEA _ArQDt1oHEeS2WoXr83SnEA"
+ superClass="_ArQGF1oHEeS2WoXr83SnEA _ArQHUVoHEeS2WoXr83SnEA" instanceType="_ArQGxVoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQGw1oHEeS2WoXr83SnEA" templateBinding="_ArQD_loHEeS2WoXr83SnEA _ArQEAVoHEeS2WoXr83SnEA _ArQEBFoHEeS2WoXr83SnEA _ArQEB1oHEeS2WoXr83SnEA _ArQECloHEeS2WoXr83SnEA _ArQEDVoHEeS2WoXr83SnEA _ArQEEFoHEeS2WoXr83SnEA _ArQEE1oHEeS2WoXr83SnEA _ArQEFloHEeS2WoXr83SnEA _ArQEGVoHEeS2WoXr83SnEA _ArQEHFoHEeS2WoXr83SnEA _ArQEH1oHEeS2WoXr83SnEA _ArQEIloHEeS2WoXr83SnEA _ArQEJVoHEeS2WoXr83SnEA _ArQEKFoHEeS2WoXr83SnEA _ArQEK1oHEeS2WoXr83SnEA _ArQELloHEeS2WoXr83SnEA _ArQEMVoHEeS2WoXr83SnEA _ArQENFoHEeS2WoXr83SnEA _ArQEN1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQGxFoHEeS2WoXr83SnEA" parameteredElement="_ArQGxVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD_1oHEeS2WoXr83SnEA _ArQEAloHEeS2WoXr83SnEA _ArQEBVoHEeS2WoXr83SnEA _ArQECFoHEeS2WoXr83SnEA _ArQEC1oHEeS2WoXr83SnEA _ArQEDloHEeS2WoXr83SnEA _ArQEEVoHEeS2WoXr83SnEA _ArQEFFoHEeS2WoXr83SnEA _ArQEF1oHEeS2WoXr83SnEA _ArQEGloHEeS2WoXr83SnEA _ArQEHVoHEeS2WoXr83SnEA _ArQEIFoHEeS2WoXr83SnEA _ArQEI1oHEeS2WoXr83SnEA _ArQEJloHEeS2WoXr83SnEA _ArQEKVoHEeS2WoXr83SnEA _ArQELFoHEeS2WoXr83SnEA _ArQEL1oHEeS2WoXr83SnEA _ArQEMloHEeS2WoXr83SnEA _ArQENVoHEeS2WoXr83SnEA _ArQEOFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQGxVoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQGxFoHEeS2WoXr83SnEA"
+ typedElement="_ArQGx1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_ArQGxloHEeS2WoXr83SnEA" name="Metaclass" type="_ArQDbVoHEeS2WoXr83SnEA" implicit="true" opposite="_ArQGx1oHEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_ArQGx1oHEeS2WoXr83SnEA" name="instanceType" type="_ArQGxVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+ opposite="_ArQGxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGyFoHEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+ </ownedAttribute>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_ArQGyVoHEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_ArQDuloHEeS2WoXr83SnEA _ArQE1FoHEeS2WoXr83SnEA"
+ typedElement="_ArQF4VoHEeS2WoXr83SnEA _ArQGM1oHEeS2WoXr83SnEA _ArQGNloHEeS2WoXr83SnEA _ArQGP1oHEeS2WoXr83SnEA _ArQGSloHEeS2WoXr83SnEA _ArQHP1oHEeS2WoXr83SnEA _ArQHdFoHEeS2WoXr83SnEA _ArQHiloHEeS2WoXr83SnEA _ArQH3VoHEeS2WoXr83SnEA _ArQILloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGyloHEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.
Conceptually, OclAny behaves as a supertype for all the types.
Features of OclAny are available on each object in all OCL expressions.
OclAny is itself an instance of the metatype AnyType.

All classes in a UML model inherit all operations defined on OclAny.
To avoid name conflicts between properties in the model and the properties inherited from OclAny,
all names on the properties of OclAny start with ‘ocl.’
Although theoretically there may still be name conflicts, they can be avoided.
One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.

Operations of OclAny, where the instance of OclAny is called object."/>
+ <ownedOperation xmi:id="_ArQGy1oHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGzFoHEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+ <ownedParameter xmi:id="_ArQGzVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQGzloHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQGz1oHEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+ <ownedParameter xmi:id="_ArQG0FoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG0VoHEeS2WoXr83SnEA" name="oclAsSet" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+ <ownedComment xmi:id="_ArQG0loHEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG01oHEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_ArQG11oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedComment xmi:id="_ArQG1FoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

In the case of feature redefinition, casting an object to a supertype of its actual type
does not access the supertype’s definition of the feature;
according to the semantics of redefinition, the redefined feature simply does not exist for the object.
However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+ <ownedTemplateSignature xmi:id="_ArQG1VoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQG1loHEeS2WoXr83SnEA" parameteredElement="_ArQG11oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQG11oHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQG1loHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEDloHEeS2WoXr83SnEA" typedElement="_ArQG01oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQG2FoHEeS2WoXr83SnEA" name="type" type="_ArQEDFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG2VoHEeS2WoXr83SnEA" name="oclIsInState" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+ <ownedComment xmi:id="_ArQG2loHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+ <ownedParameter xmi:id="_ArQG21oHEeS2WoXr83SnEA" name="statespec" type="_ArQHQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG3FoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_ArQG3VoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG3loHEeS2WoXr83SnEA" name="oclIsKindOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedComment xmi:id="_ArQG31oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.
That is, oclText[self] is of type t or a subtype of t."/>
+ <ownedTemplateSignature xmi:id="_ArQG4FoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQG4VoHEeS2WoXr83SnEA" parameteredElement="_ArQG4loHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQG4loHEeS2WoXr83SnEA" name="T" templateParameter="_ArQG4VoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEEVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQG41oHEeS2WoXr83SnEA" name="type" type="_ArQED1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG5FoHEeS2WoXr83SnEA" name="oclIsNew" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_ArQG5VoHEeS2WoXr83SnEA" body="Can only be used in a postcondition.
Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn’t exist at precondition time)."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG5loHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedComment xmi:id="_ArQG51oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+ <ownedTemplateSignature xmi:id="_ArQG6FoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQG6VoHEeS2WoXr83SnEA" parameteredElement="_ArQG6loHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQG6loHEeS2WoXr83SnEA" name="T" templateParameter="_ArQG6VoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEFFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQG61oHEeS2WoXr83SnEA" name="type" type="_ArQEEloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG7FoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_ArQG7VoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG7loHEeS2WoXr83SnEA" name="oclLog" type="_ArQHQVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_ArQG71oHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG8FoHEeS2WoXr83SnEA" name="oclLog" type="_ArQHQVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_ArQG8VoHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+ <ownedParameter xmi:id="_ArQG8loHEeS2WoXr83SnEA" name="message" type="_ArQFbVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG81oHEeS2WoXr83SnEA" name="oclType" type="_ArQEIVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+ <ownedComment xmi:id="_ArQG9FoHEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG9VoHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_ArQG9loHEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQG91oHEeS2WoXr83SnEA" name="OclComparable" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQG-FoHEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived
compareTo implementation may be sorted."/>
+ <ownedOperation xmi:id="_ArQG-VoHEeS2WoXr83SnEA" name="<" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQG-loHEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+ <ownedParameter xmi:id="_ArQG-1oHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG_FoHEeS2WoXr83SnEA" name="<=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQG_VoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_ArQG_loHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQG_1oHEeS2WoXr83SnEA" name=">" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHAFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+ <ownedParameter xmi:id="_ArQHAVoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHAloHEeS2WoXr83SnEA" name=">=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+ precedence="_ArQIfloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHA1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_ArQHBFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHBVoHEeS2WoXr83SnEA" name="compareTo" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+ <ownedComment xmi:id="_ArQHBloHEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.

The compareTo operation should be commutative."/>
+ <ownedParameter xmi:id="_ArQHB1oHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHCFoHEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_ArQDvVoHEeS2WoXr83SnEA _ArQEtloHEeS2WoXr83SnEA _ArQE11oHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQHDFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHCVoHEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined
for OclElement are therefore applicable to all user-defined types."/>
+ <ownedOperation xmi:id="_ArQHCloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+ <ownedComment xmi:id="_ArQHC1oHEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHDFoHEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_ArQHCFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+ <ownedComment xmi:id="_ArQHDVoHEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHDloHEeS2WoXr83SnEA" name="oclContents" type="_ArQEtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+ <ownedComment xmi:id="_ArQHD1oHEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_ArQHEFoHEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_ArQEIFoHEeS2WoXr83SnEA"
+ superClass="_ArQHVloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHEVoHEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.
It has one single instance, identified as oclText[invalid].
Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().
OclInvalid is itself an instance of the metatype InvalidType."/>
+ <ownedOperation xmi:id="_ArQHEloHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHE1oHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_ArQHFFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHFVoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHFloHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_ArQHF1oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHGFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+ <ownedComment xmi:id="_ArQHGVoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHGloHEeS2WoXr83SnEA" name="and" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_ArQIgFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHG1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHHFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isValidating="true" precedence="_ArQIg1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHHVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHHloHEeS2WoXr83SnEA" name="oclAsSet" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+ <ownedOperation xmi:id="_ArQHH1oHEeS2WoXr83SnEA" name="oclAsType" type="_ArQHIloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedTemplateSignature xmi:id="_ArQHIFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHIVoHEeS2WoXr83SnEA" parameteredElement="_ArQHIloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHIloHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQHIVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEF1oHEeS2WoXr83SnEA" typedElement="_ArQHH1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQHI1oHEeS2WoXr83SnEA" name="type" type="_ArQEFVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHJFoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_ArQHJVoHEeS2WoXr83SnEA" name="oclIsKindOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedTemplateSignature xmi:id="_ArQHJloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHJ1oHEeS2WoXr83SnEA" parameteredElement="_ArQHKFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHKFoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHJ1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEGloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQHKVoHEeS2WoXr83SnEA" name="type" type="_ArQEGFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHKloHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedTemplateSignature xmi:id="_ArQHK1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHLFoHEeS2WoXr83SnEA" parameteredElement="_ArQHLVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHLVoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHLFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEHVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQHLloHEeS2WoXr83SnEA" name="type" type="_ArQEG1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHL1oHEeS2WoXr83SnEA" name="oclIsUndefined" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_ArQHMFoHEeS2WoXr83SnEA" name="oclType" type="_ArQEIVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+ <ownedOperation xmi:id="_ArQHMVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_ArQIgVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHMloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHM1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_ArQHNFoHEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHNVoHEeS2WoXr83SnEA" name="OclLambda" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHNloHEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda
therefore apply to all lambda expressions."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHN1oHEeS2WoXr83SnEA" name="OclMessage" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHOFoHEeS2WoXr83SnEA" body="OclMessage
This sub clause contains the definition of the standard type OclMessage.
As defined in this sub clause, each ocl message type is actually a template type with one parameter.
‘T’ denotes the parameter.
A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType.
Every OclMessage is fully determined by either the operation, or signal given as parameter.
Note that there is conceptually an undefined (infinite) number of these types,
as each is determined by a different operation or signal.
These types are unnamed. Every type has as attributes the name of the operation or signal,
and either all formal parameters of the operation, or all attributes of the signal.
OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+ <ownedOperation xmi:id="_ArQHOVoHEeS2WoXr83SnEA" name="hasReturned" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_ArQHOloHEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.
This implies the fact that the message has been sent. False in all other cases."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHO1oHEeS2WoXr83SnEA" name="isOperationCall" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_ArQHPFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHPVoHEeS2WoXr83SnEA" name="isSignalSent" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_ArQHPloHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHP1oHEeS2WoXr83SnEA" name="result" type="_ArQGyVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_ArQHQFoHEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,
and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_ArQHQVoHEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_ArQDwFoHEeS2WoXr83SnEA _ArQEI1oHEeS2WoXr83SnEA _ArQEuVoHEeS2WoXr83SnEA _ArQE2loHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQE_loHEeS2WoXr83SnEA _ArQFAVoHEeS2WoXr83SnEA _ArQFHFoHEeS2WoXr83SnEA _ArQFH1oHEeS2WoXr83SnEA _ArQFJFoHEeS2WoXr83SnEA _ArQFJ1oHEeS2WoXr83SnEA _ArQFLFoHEeS2WoXr83SnEA _ArQFMloHEeS2WoXr83SnEA _ArQFNVoHEeS2WoXr83SnEA _ArQFPloHEeS2WoXr83SnEA _ArQFQVoHEeS2WoXr83SnEA _ArQFRloHEeS2WoXr83SnEA _ArQFSVoHEeS2WoXr83SnEA _ArQFTFoHEeS2WoXr83SnEA _ArQFT1oHEeS2WoXr83SnEA _ArQFUloHEeS2WoXr83SnEA _ArQFVVoHEeS2WoXr83SnEA _ArQFWFoHEeS2WoXr83SnEA _ArQFW1oHEeS2WoXr83SnEA _ArQFYFoHEeS2WoXr83SnEA _ArQFZVoHEeS2WoXr83SnEA _ArQFaFoHEeS2WoXr83SnEA _ArQFc1oHEeS2WoXr83SnEA _ArQFdloHEeS2WoXr83SnEA _ArQFeFoHEeS2WoXr83SnEA _ArQFeloHEeS2WoXr83SnEA _ArQFfVoHEeS2WoXr83SnEA _ArQFgFoHEeS2WoXr83SnEA _ArQFiFoHEeS2WoXr83SnEA _ArQF21oHEeS2WoXr83SnEA _ArQF3loHEeS2WoXr83SnEA _ArQGJVoHEeS2WoXr83SnEA _ArQGKFoHEeS2WoXr83SnEA _ArQGzVoHEeS2WoXr83SnEA _ArQG0FoHEeS2WoXr83SnEA _ArQG7loHEeS2WoXr83SnEA _ArQG8FoHEeS2WoXr83SnEA _ArQG-1oHEeS2WoXr83SnEA _ArQG_loHEeS2WoXr83SnEA _ArQHAVoHEeS2WoXr83SnEA _ArQHBFoHEeS2WoXr83SnEA _ArQHB1oHEeS2WoXr83SnEA _ArQHFFoHEeS2WoXr83SnEA _ArQHF1oHEeS2WoXr83SnEA _ArQHRloHEeS2WoXr83SnEA _ArQHSFoHEeS2WoXr83SnEA _ArQHSVoHEeS2WoXr83SnEA _ArQHTloHEeS2WoXr83SnEA _ArQHUFoHEeS2WoXr83SnEA _ArQHWVoHEeS2WoXr83SnEA _ArQHXFoHEeS2WoXr83SnEA _ArQHf1oHEeS2WoXr83SnEA _ArQHgVoHEeS2WoXr83SnEA _ArQH0VoHEeS2WoXr83SnEA _ArQH1FoHEeS2WoXr83SnEA _ArQIKFoHEeS2WoXr83SnEA _ArQIK1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHQloHEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation
and Iteration signatures. Instances of OclSelf are never created."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHQ1oHEeS2WoXr83SnEA" name="OclState" superClass="_ArQGyVoHEeS2WoXr83SnEA" typedElement="_ArQG21oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHRFoHEeS2WoXr83SnEA" name="OclSummable" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHRVoHEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived
sum and zero implementations may be summed."/>
+ <ownedOperation xmi:id="_ArQHRloHEeS2WoXr83SnEA" name="sum" type="_ArQHQVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHR1oHEeS2WoXr83SnEA" body="Return the sum of self and that.

The sum operation should be associative."/>
+ <ownedParameter xmi:id="_ArQHSFoHEeS2WoXr83SnEA" name="that" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHSVoHEeS2WoXr83SnEA" name="zero" type="_ArQHQVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHSloHEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.

zero().sum(self) = self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHS1oHEeS2WoXr83SnEA" name="OclTuple" superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHTFoHEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple
therefore apply to all tuples."/>
+ <ownedOperation xmi:id="_ArQHTVoHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHTloHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHT1oHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHUFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQHUVoHEeS2WoXr83SnEA" name="OclType" superClass="_ArQHCFoHEeS2WoXr83SnEA" typedElement="_ArQHVVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHUloHEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined
for OclType are therefore applicable to all UML types."/>
+ <ownedOperation xmi:id="_ArQHU1oHEeS2WoXr83SnEA" name="conformsTo" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+ <ownedComment xmi:id="_ArQHVFoHEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+ <ownedParameter xmi:id="_ArQHVVoHEeS2WoXr83SnEA" name="type2" type="_ArQHUVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_ArQHVloHEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_ArQEJloHEeS2WoXr83SnEA"
+ superClass="_ArQGyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHV1oHEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.
It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.
Any property call applied on oclText[null] results in oclText[invalid], except for the
oclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.
However, by virtue of the implicit conversion to a collection literal,
an expression evaluating to oclText[null] can be used as source of collection operations (such as ‘isEmpty’).
If the source is the oclText[null] literal, it is implicitly converted to Bag{}.

OclVoid is itself an instance of the metatype VoidType."/>
+ <ownedOperation xmi:id="_ArQHWFoHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHWVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHWloHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHW1oHEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]
if object is oclText[invalid], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_ArQHXFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHXVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_ArQEt1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+ <ownedComment xmi:id="_ArQHXloHEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHX1oHEeS2WoXr83SnEA" name="and" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+ precedence="_ArQIgFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHYFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHYVoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+ precedence="_ArQIg1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHYloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHY1oHEeS2WoXr83SnEA" name="oclIsInvalid" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_ArQHZFoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_ArQHZVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+ precedence="_ArQIgVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHZloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_ArQE-1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHZ1oHEeS2WoXr83SnEA" name="toString" type="_ArQFbVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_ArQHaFoHEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQHaVoHEeS2WoXr83SnEA" name="OrderedCollection" superClass="_ArQDwVoHEeS2WoXr83SnEA"
+ elementType="_ArQHbFoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQHaloHEeS2WoXr83SnEA" templateBinding="_ArQEOloHEeS2WoXr83SnEA _ArQEPVoHEeS2WoXr83SnEA _ArQEQFoHEeS2WoXr83SnEA _ArQEQ1oHEeS2WoXr83SnEA _ArQERloHEeS2WoXr83SnEA _ArQESVoHEeS2WoXr83SnEA _ArQETFoHEeS2WoXr83SnEA _ArQET1oHEeS2WoXr83SnEA _ArQEUloHEeS2WoXr83SnEA _ArQEVVoHEeS2WoXr83SnEA _ArQEWFoHEeS2WoXr83SnEA _ArQEW1oHEeS2WoXr83SnEA _ArQEXloHEeS2WoXr83SnEA _ArQEYVoHEeS2WoXr83SnEA _ArQEZFoHEeS2WoXr83SnEA _ArQEZ1oHEeS2WoXr83SnEA _ArQEaloHEeS2WoXr83SnEA _ArQEbVoHEeS2WoXr83SnEA _ArQEcFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHa1oHEeS2WoXr83SnEA" parameteredElement="_ArQHbFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEO1oHEeS2WoXr83SnEA _ArQEPloHEeS2WoXr83SnEA _ArQEQVoHEeS2WoXr83SnEA _ArQERFoHEeS2WoXr83SnEA _ArQER1oHEeS2WoXr83SnEA _ArQESloHEeS2WoXr83SnEA _ArQETVoHEeS2WoXr83SnEA _ArQEUFoHEeS2WoXr83SnEA _ArQEU1oHEeS2WoXr83SnEA _ArQEVloHEeS2WoXr83SnEA _ArQEWVoHEeS2WoXr83SnEA _ArQEXFoHEeS2WoXr83SnEA _ArQEX1oHEeS2WoXr83SnEA _ArQEYloHEeS2WoXr83SnEA _ArQEZVoHEeS2WoXr83SnEA _ArQEaFoHEeS2WoXr83SnEA _ArQEa1oHEeS2WoXr83SnEA _ArQEbloHEeS2WoXr83SnEA _ArQEcVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHbFoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHa1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDw1oHEeS2WoXr83SnEA" typedElement="_ArQHbVoHEeS2WoXr83SnEA _ArQHcFoHEeS2WoXr83SnEA _ArQHdVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_ArQHbVoHEeS2WoXr83SnEA" name="at" isRequired="false" type="_ArQHbFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQHbloHEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+ <ownedParameter xmi:id="_ArQHb1oHEeS2WoXr83SnEA" name="index" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHcFoHEeS2WoXr83SnEA" name="first" isRequired="false" type="_ArQHbFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQHcVoHEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHcloHEeS2WoXr83SnEA" name="indexOf" type="_ArQFGVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+ <ownedComment xmi:id="_ArQHc1oHEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+ <ownedParameter xmi:id="_ArQHdFoHEeS2WoXr83SnEA" name="obj" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHdVoHEeS2WoXr83SnEA" name="last" isRequired="false" type="_ArQHbFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQHdloHEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_ArQHd1oHEeS2WoXr83SnEA" name="OrderedSet" superClass="_ArQEV1oHEeS2WoXr83SnEA _ArQE5FoHEeS2WoXr83SnEA"
+ typedElement="_ArQHe1oHEeS2WoXr83SnEA _ArQHgloHEeS2WoXr83SnEA _ArQHhVoHEeS2WoXr83SnEA _ArQHiFoHEeS2WoXr83SnEA _ArQHi1oHEeS2WoXr83SnEA _ArQHkloHEeS2WoXr83SnEA _ArQHlVoHEeS2WoXr83SnEA _ArQHmVoHEeS2WoXr83SnEA _ArQHnFoHEeS2WoXr83SnEA _ArQHn1oHEeS2WoXr83SnEA _ArQHq1oHEeS2WoXr83SnEA _ArQHr1oHEeS2WoXr83SnEA _ArQHwFoHEeS2WoXr83SnEA _ArQHxFoHEeS2WoXr83SnEA _ArQHyFoHEeS2WoXr83SnEA"
+ elementType="_ArQHeloHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQHeFoHEeS2WoXr83SnEA" templateBinding="_ArQEc1oHEeS2WoXr83SnEA _ArQEdloHEeS2WoXr83SnEA _ArQEeVoHEeS2WoXr83SnEA _ArQEfFoHEeS2WoXr83SnEA _ArQEf1oHEeS2WoXr83SnEA _ArQEgloHEeS2WoXr83SnEA _ArQEhVoHEeS2WoXr83SnEA _ArQEiFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHeVoHEeS2WoXr83SnEA" parameteredElement="_ArQHeloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEdFoHEeS2WoXr83SnEA _ArQEd1oHEeS2WoXr83SnEA _ArQEeloHEeS2WoXr83SnEA _ArQEfVoHEeS2WoXr83SnEA _ArQEgFoHEeS2WoXr83SnEA _ArQEg1oHEeS2WoXr83SnEA _ArQEhloHEeS2WoXr83SnEA _ArQEiVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHeloHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHeVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD1VoHEeS2WoXr83SnEA _ArQEWVoHEeS2WoXr83SnEA _ArQE5loHEeS2WoXr83SnEA" typedElement="_ArQHhFoHEeS2WoXr83SnEA _ArQHlFoHEeS2WoXr83SnEA _ArQHmFoHEeS2WoXr83SnEA _ArQHm1oHEeS2WoXr83SnEA _ArQHsloHEeS2WoXr83SnEA _ArQHuVoHEeS2WoXr83SnEA _ArQHv1oHEeS2WoXr83SnEA _ArQHw1oHEeS2WoXr83SnEA _ArQHx1oHEeS2WoXr83SnEA _ArQHy1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_ArQHe1oHEeS2WoXr83SnEA" name="-" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQHfFoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_ArQHfVoHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHfloHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHf1oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHgFoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQHgVoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHgloHEeS2WoXr83SnEA" name="append" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_ArQHg1oHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_ArQHhFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHhVoHEeS2WoXr83SnEA" name="appendAll" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_ArQHhloHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_ArQHh1oHEeS2WoXr83SnEA" name="objects" type="_ArQEV1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHiFoHEeS2WoXr83SnEA" name="excluding" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_ArQHiVoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_ArQHiloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHi1oHEeS2WoXr83SnEA" name="excludingAll" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_ArQHjFoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_ArQHjVoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHjloHEeS2WoXr83SnEA" name="flatten" type="_ArQEeFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedTemplateSignature xmi:id="_ArQHj1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHkFoHEeS2WoXr83SnEA" parameteredElement="_ArQHkVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHkVoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQHkFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDzFoHEeS2WoXr83SnEA _ArQEUFoHEeS2WoXr83SnEA _ArQEeloHEeS2WoXr83SnEA _ArQE3VoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHkloHEeS2WoXr83SnEA" name="including" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_ArQHk1oHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+ <ownedParameter xmi:id="_ArQHlFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHlVoHEeS2WoXr83SnEA" name="insertAt" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQHlloHEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+ <ownedParameter xmi:id="_ArQHl1oHEeS2WoXr83SnEA" name="index" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQHmFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHmVoHEeS2WoXr83SnEA" name="prepend" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_ArQHmloHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_ArQHm1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHnFoHEeS2WoXr83SnEA" name="prependAll" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_ArQHnVoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_ArQHnloHEeS2WoXr83SnEA" name="objects" type="_ArQEV1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHn1oHEeS2WoXr83SnEA" name="reverse" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_ArQHoFoHEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHoVoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQEe1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_ArQHoloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHo1oHEeS2WoXr83SnEA" parameteredElement="_ArQHpFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHpFoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQHo1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDz1oHEeS2WoXr83SnEA _ArQEKVoHEeS2WoXr83SnEA _ArQEU1oHEeS2WoXr83SnEA _ArQEfVoHEeS2WoXr83SnEA _ArQE4FoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQHpVoHEeS2WoXr83SnEA" name="type" type="_ArQEJ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHploHEeS2WoXr83SnEA" name="selectByType" type="_ArQEfloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_ArQHp1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHqFoHEeS2WoXr83SnEA" parameteredElement="_ArQHqVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHqVoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQHqFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD0loHEeS2WoXr83SnEA _ArQELFoHEeS2WoXr83SnEA _ArQEVloHEeS2WoXr83SnEA _ArQEgFoHEeS2WoXr83SnEA _ArQE41oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQHqloHEeS2WoXr83SnEA" name="type" type="_ArQEKloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQHq1oHEeS2WoXr83SnEA" name="subOrderedSet" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQHrFoHEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_ArQHrVoHEeS2WoXr83SnEA" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQHrloHEeS2WoXr83SnEA" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHr1oHEeS2WoXr83SnEA" name="closure" type="_ArQHd1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_ArQHsFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_ArQHsVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDRFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQHsloHEeS2WoXr83SnEA" name="i" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHs1oHEeS2WoXr83SnEA" name="collectNested" type="_ArQElloHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_ArQHtFoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_ArQHtVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHtloHEeS2WoXr83SnEA" parameteredElement="_ArQHt1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHt1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQHtloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDxloHEeS2WoXr83SnEA _ArQESloHEeS2WoXr83SnEA _ArQEmFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQHuFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDRVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQHuVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHuloHEeS2WoXr83SnEA" name="collect" type="_ArQEmVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_ArQHu1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHvFoHEeS2WoXr83SnEA" parameteredElement="_ArQHvVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHvVoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQHvFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDyVoHEeS2WoXr83SnEA _ArQETVoHEeS2WoXr83SnEA _ArQEm1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQHvloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDRloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQHv1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHwFoHEeS2WoXr83SnEA" name="reject" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_ArQHwVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_ArQHwloHEeS2WoXr83SnEA" name="lambda" type="_ArQDQloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQHw1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHxFoHEeS2WoXr83SnEA" name="select" type="_ArQHd1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_ArQHxVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+ <ownedParameter xmi:id="_ArQHxloHEeS2WoXr83SnEA" name="lambda" type="_ArQDQloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQHx1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQHyFoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQHd1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_ArQHyVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_ArQHyloHEeS2WoXr83SnEA" name="lambda" type="_ArQDQ1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQHy1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHeloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_ArQHzFoHEeS2WoXr83SnEA" name="Sequence" superClass="_ArQEaVoHEeS2WoXr83SnEA"
+ typedElement="_ArQH1VoHEeS2WoXr83SnEA _ArQH2FoHEeS2WoXr83SnEA _ArQH21oHEeS2WoXr83SnEA _ArQH3loHEeS2WoXr83SnEA _ArQH5loHEeS2WoXr83SnEA _ArQH6VoHEeS2WoXr83SnEA _ArQH7VoHEeS2WoXr83SnEA _ArQH8FoHEeS2WoXr83SnEA _ArQH81oHEeS2WoXr83SnEA _ArQH_1oHEeS2WoXr83SnEA _ArQIFFoHEeS2WoXr83SnEA _ArQIGFoHEeS2WoXr83SnEA _ArQIHFoHEeS2WoXr83SnEA"
+ elementType="_ArQHz1oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQHzVoHEeS2WoXr83SnEA" templateBinding="_ArQEi1oHEeS2WoXr83SnEA _ArQEjloHEeS2WoXr83SnEA _ArQEkVoHEeS2WoXr83SnEA _ArQElFoHEeS2WoXr83SnEA _ArQEl1oHEeS2WoXr83SnEA _ArQEmloHEeS2WoXr83SnEA _ArQEnVoHEeS2WoXr83SnEA _ArQEoFoHEeS2WoXr83SnEA _ArQEo1oHEeS2WoXr83SnEA _ArQEploHEeS2WoXr83SnEA _ArQEqVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQHzloHEeS2WoXr83SnEA" parameteredElement="_ArQHz1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQEjFoHEeS2WoXr83SnEA _ArQEj1oHEeS2WoXr83SnEA _ArQEkloHEeS2WoXr83SnEA _ArQElVoHEeS2WoXr83SnEA _ArQEmFoHEeS2WoXr83SnEA _ArQEm1oHEeS2WoXr83SnEA _ArQEnloHEeS2WoXr83SnEA _ArQEoVoHEeS2WoXr83SnEA _ArQEpFoHEeS2WoXr83SnEA _ArQEp1oHEeS2WoXr83SnEA _ArQEqloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQHz1oHEeS2WoXr83SnEA" name="T" templateParameter="_ArQHzloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD51oHEeS2WoXr83SnEA _ArQEa1oHEeS2WoXr83SnEA _ArQEg1oHEeS2WoXr83SnEA _ArQE6VoHEeS2WoXr83SnEA"
+ typedElement="_ArQH11oHEeS2WoXr83SnEA _ArQH6FoHEeS2WoXr83SnEA _ArQH7FoHEeS2WoXr83SnEA _ArQH71oHEeS2WoXr83SnEA _ArQIBloHEeS2WoXr83SnEA _ArQIDVoHEeS2WoXr83SnEA _ArQIE1oHEeS2WoXr83SnEA _ArQIF1oHEeS2WoXr83SnEA _ArQIG1oHEeS2WoXr83SnEA _ArQIH1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_ArQH0FoHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQH0VoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH0loHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQH01oHEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+ <ownedParameter xmi:id="_ArQH1FoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH1VoHEeS2WoXr83SnEA" name="append" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_ArQH1loHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_ArQH11oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH2FoHEeS2WoXr83SnEA" name="appendAll" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_ArQH2VoHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_ArQH2loHEeS2WoXr83SnEA" name="objects" type="_ArQEaVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH21oHEeS2WoXr83SnEA" name="excluding" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_ArQH3FoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_ArQH3VoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH3loHEeS2WoXr83SnEA" name="excludingAll" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_ArQH31oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_ArQH4FoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH4VoHEeS2WoXr83SnEA" name="flatten" type="_ArQEoloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_ArQH4loHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].
If the element type is a collection type, the result is the sequence containing all the elements
of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+ <ownedTemplateSignature xmi:id="_ArQH41oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQH5FoHEeS2WoXr83SnEA" parameteredElement="_ArQH5VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQH5VoHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQH5FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD3loHEeS2WoXr83SnEA _ArQEYloHEeS2WoXr83SnEA _ArQEpFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH5loHEeS2WoXr83SnEA" name="including" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_ArQH51oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+ <ownedParameter xmi:id="_ArQH6FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH6VoHEeS2WoXr83SnEA" name="insertAt" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQH6loHEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+ <ownedParameter xmi:id="_ArQH61oHEeS2WoXr83SnEA" name="index" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQH7FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH7VoHEeS2WoXr83SnEA" name="prepend" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_ArQH7loHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_ArQH71oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH8FoHEeS2WoXr83SnEA" name="prependAll" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_ArQH8VoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_ArQH8loHEeS2WoXr83SnEA" name="objects" type="_ArQEaVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH81oHEeS2WoXr83SnEA" name="reverse" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_ArQH9FoHEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH9VoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQEpVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_ArQH9loHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQH91oHEeS2WoXr83SnEA" parameteredElement="_ArQH-FoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQH-FoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQH91oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD4VoHEeS2WoXr83SnEA _ArQEL1oHEeS2WoXr83SnEA _ArQEZVoHEeS2WoXr83SnEA _ArQEp1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQH-VoHEeS2WoXr83SnEA" name="type" type="_ArQELVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH-loHEeS2WoXr83SnEA" name="selectByType" type="_ArQEqFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_ArQH-1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQH_FoHEeS2WoXr83SnEA" parameteredElement="_ArQH_VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQH_VoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQH_FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD5FoHEeS2WoXr83SnEA _ArQEMloHEeS2WoXr83SnEA _ArQEaFoHEeS2WoXr83SnEA _ArQEqloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQH_loHEeS2WoXr83SnEA" name="type" type="_ArQEMFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQH_1oHEeS2WoXr83SnEA" name="subSequence" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_ArQIAFoHEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_ArQIAVoHEeS2WoXr83SnEA" name="lower" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_ArQIAloHEeS2WoXr83SnEA" name="upper" type="_ArQFGVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIA1oHEeS2WoXr83SnEA" name="closure" type="_ArQEgVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_ArQIBFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_ArQIBVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDSVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIBloHEeS2WoXr83SnEA" name="i" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIB1oHEeS2WoXr83SnEA" name="collectNested" type="_ArQEnFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_ArQICFoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_ArQICVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQICloHEeS2WoXr83SnEA" parameteredElement="_ArQIC1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIC1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQICloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD2FoHEeS2WoXr83SnEA _ArQEXFoHEeS2WoXr83SnEA _ArQEnloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQIDFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDSloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIDVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIDloHEeS2WoXr83SnEA" name="collect" type="_ArQEn1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_ArQID1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIEFoHEeS2WoXr83SnEA" parameteredElement="_ArQIEVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIEVoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQIEFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD21oHEeS2WoXr83SnEA _ArQEX1oHEeS2WoXr83SnEA _ArQEoVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQIEloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDS1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIE1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIFFoHEeS2WoXr83SnEA" name="reject" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_ArQIFVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_ArQIFloHEeS2WoXr83SnEA" name="lambda" type="_ArQDR1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIF1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIGFoHEeS2WoXr83SnEA" name="select" type="_ArQHzFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_ArQIGVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_ArQIGloHEeS2WoXr83SnEA" name="lambda" type="_ArQDR1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIG1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIHFoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQHzFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_ArQIHVoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_ArQIHloHEeS2WoXr83SnEA" name="lambda" type="_ArQDSFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIH1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQHz1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIIFoHEeS2WoXr83SnEA" name="Set" superClass="_ArQE81oHEeS2WoXr83SnEA" typedElement="_ArQIJFoHEeS2WoXr83SnEA _ArQILFoHEeS2WoXr83SnEA _ArQIL1oHEeS2WoXr83SnEA _ArQIN1oHEeS2WoXr83SnEA _ArQIOloHEeS2WoXr83SnEA _ArQIR1oHEeS2WoXr83SnEA _ArQIWFoHEeS2WoXr83SnEA _ArQIXFoHEeS2WoXr83SnEA"
+ elementType="_ArQII1oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQIIVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIIloHEeS2WoXr83SnEA" parameteredElement="_ArQII1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQII1oHEeS2WoXr83SnEA" name="T" templateParameter="_ArQIIloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD-VoHEeS2WoXr83SnEA _ArQEbloHEeS2WoXr83SnEA _ArQEhloHEeS2WoXr83SnEA _ArQE9VoHEeS2WoXr83SnEA"
+ typedElement="_ArQIOVoHEeS2WoXr83SnEA _ArQISloHEeS2WoXr83SnEA _ArQIUVoHEeS2WoXr83SnEA _ArQIV1oHEeS2WoXr83SnEA _ArQIW1oHEeS2WoXr83SnEA _ArQIX1oHEeS2WoXr83SnEA _ArQIY1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQErVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEsFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEs1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEtloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEuVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEvFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEv1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEwloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQExVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_ArQIlFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="mitosi.xml#_ArQDL1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="javaMM.xml#_ArQIsloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="javaMM.xml#_ArQItVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#_ArQErFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEr1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEsloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEtVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEuFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEu1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEvloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEwVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQExFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_ArQIk1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="mitosi.xml#_ArQDLloHEeS2WoXr83SnEA"/>
+ <templateBinding href="javaMM.xml#_ArQIsVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="javaMM.xml#_ArQItFoHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_ArQIJFoHEeS2WoXr83SnEA" name="-" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQIJVoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_ArQIJloHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIJ1oHEeS2WoXr83SnEA" name="<>" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_ArQIKFoHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIKVoHEeS2WoXr83SnEA" name="=" type="_ArQE-1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_ArQIf1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQIKloHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+ <ownedParameter xmi:id="_ArQIK1oHEeS2WoXr83SnEA" name="object2" type="_ArQHQVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQILFoHEeS2WoXr83SnEA" name="excluding" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_ArQILVoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+ <ownedParameter xmi:id="_ArQILloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIL1oHEeS2WoXr83SnEA" name="excludingAll" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_ArQIMFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_ArQIMVoHEeS2WoXr83SnEA" name="objects" type="_ArQDuFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIMloHEeS2WoXr83SnEA" name="flatten" type="_ArQEuloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_ArQIM1oHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].
If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_ArQINFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQINVoHEeS2WoXr83SnEA" parameteredElement="_ArQINloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQINloHEeS2WoXr83SnEA" name="T2" templateParameter="_ArQINVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD8FoHEeS2WoXr83SnEA _ArQEvFoHEeS2WoXr83SnEA _ArQE7FoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIN1oHEeS2WoXr83SnEA" name="including" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_ArQIOFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_ArQIOVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIOloHEeS2WoXr83SnEA" name="includingAll" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_ArQIO1oHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_ArQIPFoHEeS2WoXr83SnEA" name="objects" type="_ArQD91oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIPVoHEeS2WoXr83SnEA" name="selectByKind" type="_ArQEvVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_ArQIPloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIP1oHEeS2WoXr83SnEA" parameteredElement="_ArQIQFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIQFoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQIP1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD81oHEeS2WoXr83SnEA _ArQENVoHEeS2WoXr83SnEA _ArQEv1oHEeS2WoXr83SnEA _ArQE71oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQIQVoHEeS2WoXr83SnEA" name="type" type="_ArQEM1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIQloHEeS2WoXr83SnEA" name="selectByType" type="_ArQEwFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_ArQIQ1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIRFoHEeS2WoXr83SnEA" parameteredElement="_ArQIRVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIRVoHEeS2WoXr83SnEA" name="TT" templateParameter="_ArQIRFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD9loHEeS2WoXr83SnEA _ArQEOFoHEeS2WoXr83SnEA _ArQEwloHEeS2WoXr83SnEA _ArQE8loHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQIRloHEeS2WoXr83SnEA" name="type" type="_ArQENloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIR1oHEeS2WoXr83SnEA" name="closure" type="_ArQIIFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_ArQISFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_ArQISVoHEeS2WoXr83SnEA" name="lambda" type="_ArQDTloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQISloHEeS2WoXr83SnEA" name="i" type="_ArQII1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIS1oHEeS2WoXr83SnEA" name="collectNested" type="_ArQDcFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_ArQITFoHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_ArQITVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQITloHEeS2WoXr83SnEA" parameteredElement="_ArQIT1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIT1oHEeS2WoXr83SnEA" name="V" templateParameter="_ArQITloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDcloHEeS2WoXr83SnEA _ArQD6loHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQIUFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDT1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIUVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIUloHEeS2WoXr83SnEA" name="collect" type="_ArQDc1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_ArQIU1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIVFoHEeS2WoXr83SnEA" parameteredElement="_ArQIVVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIVVoHEeS2WoXr83SnEA" name="V" templateParameter="_ArQIVFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQDdVoHEeS2WoXr83SnEA _ArQD7VoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_ArQIVloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_ArQDUFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIV1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIWFoHEeS2WoXr83SnEA" name="reject" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_ArQIWVoHEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_ArQIWloHEeS2WoXr83SnEA" name="lambda" type="_ArQDTFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIW1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIXFoHEeS2WoXr83SnEA" name="select" type="_ArQIIFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_ArQIXVoHEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+ <ownedParameter xmi:id="_ArQIXloHEeS2WoXr83SnEA" name="lambda" type="_ArQDTFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIX1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIYFoHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEhFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_ArQIYVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_ArQIYloHEeS2WoXr83SnEA" name="lambda" type="_ArQDTVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIY1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQII1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIZFoHEeS2WoXr83SnEA" name="State" superClass="_ArQHQ1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIZVoHEeS2WoXr83SnEA" name="Type" superClass="_ArQHUVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIZloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQD-loHEeS2WoXr83SnEA"
+ typedElement="_ArQIaloHEeS2WoXr83SnEA _ArQIdVoHEeS2WoXr83SnEA" elementType="_ArQIaVoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_ArQIZ1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_ArQIaFoHEeS2WoXr83SnEA" parameteredElement="_ArQIaVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_ArQIaVoHEeS2WoXr83SnEA" name="T" templateParameter="_ArQIaFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_ArQD_FoHEeS2WoXr83SnEA _ArQEcVoHEeS2WoXr83SnEA _ArQEiVoHEeS2WoXr83SnEA _ArQExVoHEeS2WoXr83SnEA _ArQE-FoHEeS2WoXr83SnEA"
+ typedElement="_ArQIeVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEyFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEy1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQEzloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE0VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE1FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE11oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE2loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE3VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE4FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE41oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE5loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE6VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE7FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE71oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE8loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE9VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQE-FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_ArQIl1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="mitosi.xml#_ArQDMloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="javaMM.xml#_ArQIuFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="javaMM.xml#_ArQIu1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="#_ArQEx1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEyloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQEzVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE0FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE01oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE1loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE2VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE3FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE31oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE4loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE5VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE6FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE61oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE7loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE8VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE9FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_ArQE91oHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_ArQIlloHEeS2WoXr83SnEA"/>
+ <templateBinding href="mitosi.xml#_ArQDMVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="javaMM.xml#_ArQIt1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="javaMM.xml#_ArQIuloHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_ArQIaloHEeS2WoXr83SnEA" name="-" type="_ArQIZloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_ArQIfVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_ArQIa1oHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_ArQIbFoHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIbVoHEeS2WoXr83SnEA" name="intersection" type="_ArQEw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_ArQIbloHEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+ <ownedParameter xmi:id="_ArQIb1oHEeS2WoXr83SnEA" name="c" type="_ArQD-loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIcFoHEeS2WoXr83SnEA" name="symmetricDifference" type="_ArQEw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+ <ownedComment xmi:id="_ArQIcVoHEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+ <ownedParameter xmi:id="_ArQIcloHEeS2WoXr83SnEA" name="s" type="_ArQE0loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_ArQIc1oHEeS2WoXr83SnEA" name="union" type="_ArQEw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_ArQIdFoHEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+ <ownedParameter xmi:id="_ArQIdVoHEeS2WoXr83SnEA" name="s" type="_ArQIZloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_ArQIdloHEeS2WoXr83SnEA" name="sortedBy" type="_ArQEh1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_ArQId1oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_ArQIeFoHEeS2WoXr83SnEA" name="lambda" type="_ArQDUVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_ArQIeVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_ArQIaVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedPrecedence xmi:id="_ArQIeloHEeS2WoXr83SnEA" name="NAVIGATION"/>
+ <ownedPrecedence xmi:id="_ArQIe1oHEeS2WoXr83SnEA" name="UNARY" order="1"/>
+ <ownedPrecedence xmi:id="_ArQIfFoHEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+ <ownedPrecedence xmi:id="_ArQIfVoHEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+ <ownedPrecedence xmi:id="_ArQIfloHEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+ <ownedPrecedence xmi:id="_ArQIf1oHEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+ <ownedPrecedence xmi:id="_ArQIgFoHEeS2WoXr83SnEA" name="AND" order="6"/>
+ <ownedPrecedence xmi:id="_ArQIgVoHEeS2WoXr83SnEA" name="OR" order="7"/>
+ <ownedPrecedence xmi:id="_ArQIgloHEeS2WoXr83SnEA" name="XOR" order="8"/>
+ <ownedPrecedence xmi:id="_ArQIg1oHEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.xml
new file mode 100644
index 0000000..bf4a8a6
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_ArQImFoHEeS2WoXr83SnEA" name="javaMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/javaMM.emof">
+ <nestedPackage xmi:id="_ArQImVoHEeS2WoXr83SnEA" name="javammsi" nsURI="javammsi">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQImloHEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="_ArQIrFoHEeS2WoXr83SnEA _ArQIsloHEeS2WoXr83SnEA _ArQIuFoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_ArQIm1oHEeS2WoXr83SnEA" name="Extends" type="_ArQIsFoHEeS2WoXr83SnEA" opposite="_ArQInFoHEeS2WoXr83SnEA">
+ <propertyItem href="mitosi.xml#_ArQCwloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQInFoHEeS2WoXr83SnEA" name="extendedBy" type="_ArQIsFoHEeS2WoXr83SnEA" opposite="_ArQIm1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_ArQInVoHEeS2WoXr83SnEA" name="implements" type="_ArQIs1oHEeS2WoXr83SnEA" opposite="_ArQIo1oHEeS2WoXr83SnEA">
+ <propertyItem href="mitosi.xml#_ArQDF1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQInloHEeS2WoXr83SnEA" name="name" isID="true">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ <key href="mitosi.xml#_ArQDJ1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQCsFoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQCwFoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQIn1oHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_ArQIploHEeS2WoXr83SnEA" implicit="true"
+ opposite="_ArQIp1oHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCr1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCtFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCv1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCw1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCxloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCyFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCzloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC0VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQDFloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDHFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDIVoHEeS2WoXr83SnEA"/>
+ <key href="mitosi.xml#_ArQDJ1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIoFoHEeS2WoXr83SnEA" name="Interface" templateParameterSubstitution="_ArQIr1oHEeS2WoXr83SnEA _ArQItVoHEeS2WoXr83SnEA _ArQIu1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_ArQIoVoHEeS2WoXr83SnEA" name="Extends" type="_ArQIs1oHEeS2WoXr83SnEA" opposite="_ArQIoloHEeS2WoXr83SnEA">
+ <propertyItem href="mitosi.xml#_ArQC91oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQIoloHEeS2WoXr83SnEA" name="extendedBy" type="_ArQIs1oHEeS2WoXr83SnEA" opposite="_ArQIoVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_ArQIo1oHEeS2WoXr83SnEA" name="implementedBy" type="_ArQIsFoHEeS2WoXr83SnEA" opposite="_ArQInVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_ArQIpFoHEeS2WoXr83SnEA" name="name" isID="true">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ <key href="mitosi.xml#_ArQDKFoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQC5FoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQC9VoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQIpVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_ArQIploHEeS2WoXr83SnEA" implicit="true"
+ opposite="_ArQIqFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC41oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC6VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC9FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC-FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC-1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDBVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDDVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDGFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDGloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDJVoHEeS2WoXr83SnEA"/>
+ <key href="mitosi.xml#_ArQDKFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIploHEeS2WoXr83SnEA" name="dummy" typedElement="_ArQIn1oHEeS2WoXr83SnEA _ArQIpVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_ArQIp1oHEeS2WoXr83SnEA" name="containsClass" type="_ArQIsFoHEeS2WoXr83SnEA" isComposite="true" opposite="_ArQIn1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_ArQIqFoHEeS2WoXr83SnEA" name="containsIterface" type="_ArQIs1oHEeS2WoXr83SnEA" isComposite="true" opposite="_ArQIpVoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_ArQIqVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIqloHEeS2WoXr83SnEA" name="Collection" elementType="_ArQImloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQIq1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIrFoHEeS2WoXr83SnEA" actual="_ArQImloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIrVoHEeS2WoXr83SnEA" name="Collection" elementType="_ArQIoFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQIrloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIr1oHEeS2WoXr83SnEA" actual="_ArQIoFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIsFoHEeS2WoXr83SnEA" name="Set" superClass="_ArQItloHEeS2WoXr83SnEA" typedElement="_ArQIm1oHEeS2WoXr83SnEA _ArQInFoHEeS2WoXr83SnEA _ArQIo1oHEeS2WoXr83SnEA _ArQIp1oHEeS2WoXr83SnEA"
+ elementType="_ArQImloHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_ArQIsVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIsloHEeS2WoXr83SnEA" actual="_ArQImloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIs1oHEeS2WoXr83SnEA" name="Set" superClass="_ArQIuVoHEeS2WoXr83SnEA" typedElement="_ArQInVoHEeS2WoXr83SnEA _ArQIoVoHEeS2WoXr83SnEA _ArQIoloHEeS2WoXr83SnEA _ArQIqFoHEeS2WoXr83SnEA"
+ elementType="_ArQIoFoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_ArQItFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQItVoHEeS2WoXr83SnEA" actual="_ArQIoFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQItloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQIqloHEeS2WoXr83SnEA"
+ elementType="_ArQImloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQIt1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIuFoHEeS2WoXr83SnEA" actual="_ArQImloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIuVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQIrVoHEeS2WoXr83SnEA"
+ elementType="_ArQIoFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQIuloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIu1oHEeS2WoXr83SnEA" actual="_ArQIoFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.xml
new file mode 100644
index 0000000..a161707
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.xml
@@ -0,0 +1,450 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_ArQCoFoHEeS2WoXr83SnEA" name="mitosi.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/mitosi.qvtr">
+ <ownedComment xmi:id="_ArQCoVoHEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_ArQColoHEeS2WoXr83SnEA" name="MiToSi">
+ <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+ <modelParameter xmi:id="_ArQCo1oHEeS2WoXr83SnEA" name="uml">
+ <usedPackage href="umlMM.xml#_ArQIhVoHEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <modelParameter xmi:id="_ArQCpFoHEeS2WoXr83SnEA" name="java">
+ <usedPackage href="javaMM.xml#_ArQImVoHEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQCpVoHEeS2WoXr83SnEA" name="RClassToClass" isTopLevel="true" relationCallExp="_ArQCzFoHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCploHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+ rootVariable="_ArQCs1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQCp1oHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCqFoHEeS2WoXr83SnEA" bindsTo="_ArQCs1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQCqVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCqloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCsloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_ArQCq1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIiloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_ArQCrFoHEeS2WoXr83SnEA" stringSymbol="DomainRoot">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCrVoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+ rootVariable="_ArQCtFoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQCrloHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCr1oHEeS2WoXr83SnEA" bindsTo="_ArQCtFoHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQCsFoHEeS2WoXr83SnEA">
+ <referredProperty href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCsVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCsloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_ArQCsloHEeS2WoXr83SnEA" name="n" isRequired="false">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQCs1oHEeS2WoXr83SnEA" name="c1" templateExp="_ArQCqFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQCtFoHEeS2WoXr83SnEA" name="c2" templateExp="_ArQCr1oHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </variable>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQCtVoHEeS2WoXr83SnEA" name="ClassToClass" isTopLevel="true" relationCallExp="_ArQCz1oHEeS2WoXr83SnEA _ArQDC1oHEeS2WoXr83SnEA _ArQDH1oHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCtloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+ rootVariable="_ArQCx1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQCt1oHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCuFoHEeS2WoXr83SnEA" bindsTo="_ArQCx1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQCuVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCuloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_ArQCu1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCvFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQCvVoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+ rootVariable="_ArQCyFoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQCvloHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQCv1oHEeS2WoXr83SnEA" bindsTo="_ArQCyFoHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQCwFoHEeS2WoXr83SnEA">
+ <referredProperty href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCwVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_ArQCwloHEeS2WoXr83SnEA">
+ <referredProperty href="javaMM.xml#_ArQIm1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCw1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxloHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_ArQCxFoHEeS2WoXr83SnEA" name="n" isRequired="false">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQCxVoHEeS2WoXr83SnEA" name="c1sup" isRequired="false">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQCxloHEeS2WoXr83SnEA" name="c2sup" isRequired="false">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQCx1oHEeS2WoXr83SnEA" name="c1" templateExp="_ArQCuFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQCyFoHEeS2WoXr83SnEA" name="c2" templateExp="_ArQCv1oHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="_ArQCyVoHEeS2WoXr83SnEA">
+ <predicate xmi:id="_ArQCyloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQCy1oHEeS2WoXr83SnEA" name="or" isRequired="false">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQCzFoHEeS2WoXr83SnEA" referredRelation="_ArQCpVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCzVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQCzloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxloHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </argument>
+ </source>
+ <argument xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQCz1oHEeS2WoXr83SnEA" referredRelation="_ArQCtVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC0FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC0VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQCxloHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </argument>
+ </argument>
+ <referredOperation href="OCL.xml#_ArQFD1oHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQC0loHEeS2WoXr83SnEA" name="RClassToInterface" isTopLevel="true" relationCallExp="_ArQDA1oHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC01oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+ rootVariable="_ArQC6FoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQC1FoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC1VoHEeS2WoXr83SnEA" bindsTo="_ArQC6FoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <where xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQC1loHEeS2WoXr83SnEA" name="and" isRequired="false">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQC11oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_ArQC2FoHEeS2WoXr83SnEA" type="_ArQDLVoHEeS2WoXr83SnEA">
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC2VoHEeS2WoXr83SnEA" referredVariable="_ArQC6FoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </source>
+ <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+ </source>
+ <referredOperation href="OCL.xml#_ArQGXVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQC2loHEeS2WoXr83SnEA" name="<>">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC21oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC51oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_ArQC3FoHEeS2WoXr83SnEA" stringSymbol="DomainRoot">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_ArQFd1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_ArQFBFoHEeS2WoXr83SnEA"/>
+ </where>
+ <part xmi:id="_ArQC3VoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC3loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC5loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_ArQC31oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIiloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC4FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC51oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC4VoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+ rootVariable="_ArQC6VoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQC4loHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC41oHEeS2WoXr83SnEA" bindsTo="_ArQC6VoHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQC5FoHEeS2WoXr83SnEA">
+ <referredProperty href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC5VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC5loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_ArQC5loHEeS2WoXr83SnEA" name="n" isRequired="false">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC51oHEeS2WoXr83SnEA" name="typ" isRequired="false">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC6FoHEeS2WoXr83SnEA" name="c" templateExp="_ArQC1VoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC6VoHEeS2WoXr83SnEA" name="i" templateExp="_ArQC41oHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </variable>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQC6loHEeS2WoXr83SnEA" name="ClassToInterface" isTopLevel="true" relationCallExp="_ArQDBloHEeS2WoXr83SnEA _ArQDI1oHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC61oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+ rootVariable="_ArQC_loHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQC7FoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC7VoHEeS2WoXr83SnEA" bindsTo="_ArQC_loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQC7loHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC71oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_ArQC8FoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC8VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQC8loHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+ rootVariable="_ArQC_1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQC81oHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQC9FoHEeS2WoXr83SnEA" bindsTo="_ArQC_1oHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQC9VoHEeS2WoXr83SnEA">
+ <referredProperty href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC9loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_ArQC91oHEeS2WoXr83SnEA">
+ <referredProperty href="javaMM.xml#_ArQIoVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQC-FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-1oHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_ArQC-VoHEeS2WoXr83SnEA" name="n" isRequired="false">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC-loHEeS2WoXr83SnEA" name="csup" isRequired="false">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC-1oHEeS2WoXr83SnEA" name="isup" isRequired="false">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC_FoHEeS2WoXr83SnEA" name="someI" isRequired="false">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC_VoHEeS2WoXr83SnEA" name="z" isRequired="false">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC_loHEeS2WoXr83SnEA" name="c" templateExp="_ArQC7VoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQC_1oHEeS2WoXr83SnEA" name="i" templateExp="_ArQC9FoHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="_ArQDAFoHEeS2WoXr83SnEA">
+ <predicate xmi:id="_ArQDAVoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQDAloHEeS2WoXr83SnEA" name="or" isRequired="false">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDA1oHEeS2WoXr83SnEA" referredRelation="_ArQC0loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDBFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDBVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-1oHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </source>
+ <argument xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDBloHEeS2WoXr83SnEA" referredRelation="_ArQC6loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDB1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDCFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC-1oHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </argument>
+ <referredOperation href="OCL.xml#_ArQFD1oHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_ArQDCVoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_ArQDCloHEeS2WoXr83SnEA" name="not" isRequired="false">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDC1oHEeS2WoXr83SnEA" referredRelation="_ArQCtVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDDFoHEeS2WoXr83SnEA" referredVariable="_ArQC_loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDDVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQC_VoHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </source>
+ <referredOperation href="OCL.xml#_ArQFDFoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_ArQDDloHEeS2WoXr83SnEA" name="ClassSupersToClassImplements" isTopLevel="true">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQDD1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_ArQCo1oHEeS2WoXr83SnEA"
+ rootVariable="_ArQDG1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQDEFoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQDEVoHEeS2WoXr83SnEA" bindsTo="_ArQDG1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQDEloHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_ArQIiVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDE1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_ArQDFFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_ArQCpFoHEeS2WoXr83SnEA"
+ rootVariable="_ArQDHFoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_ArQDFVoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_ArQDFloHEeS2WoXr83SnEA" bindsTo="_ArQDHFoHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_ArQDF1oHEeS2WoXr83SnEA">
+ <referredProperty href="javaMM.xml#_ArQInVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDGFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGloHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_ArQDGVoHEeS2WoXr83SnEA" name="csup" isRequired="false">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQDGloHEeS2WoXr83SnEA" name="isup" isRequired="false">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQDG1oHEeS2WoXr83SnEA" name="c1" templateExp="_ArQDEVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_ArQDHFoHEeS2WoXr83SnEA" name="c2" templateExp="_ArQDFloHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="_ArQDHVoHEeS2WoXr83SnEA">
+ <predicate xmi:id="_ArQDHloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDH1oHEeS2WoXr83SnEA" referredRelation="_ArQCtVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDIFoHEeS2WoXr83SnEA" referredVariable="_ArQDG1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDIVoHEeS2WoXr83SnEA" referredVariable="_ArQDHFoHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_ArQDIloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_ArQDI1oHEeS2WoXr83SnEA" referredRelation="_ArQC6loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_ArQE-1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDJFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_ArQDJVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_ArQDGloHEeS2WoXr83SnEA">
+ <type href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </when>
+ </rule>
+ <ownedKey xmi:id="_ArQDJloHEeS2WoXr83SnEA">
+ <identifies href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <part href="umlMM.xml#_ArQIh1oHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_ArQDJ1oHEeS2WoXr83SnEA">
+ <identifies href="javaMM.xml#_ArQImloHEeS2WoXr83SnEA"/>
+ <part href="javaMM.xml#_ArQInloHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_ArQDKFoHEeS2WoXr83SnEA">
+ <identifies href="javaMM.xml#_ArQIoFoHEeS2WoXr83SnEA"/>
+ <part href="javaMM.xml#_ArQIpFoHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ </nestedPackage>
+ <nestedPackage xmi:id="_ArQDKVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDKloHEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="_ArQDK1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDLFoHEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+ <elementType href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQDLVoHEeS2WoXr83SnEA" name="Set" superClass="_ArQDMFoHEeS2WoXr83SnEA" typedElement="_ArQC2FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDLloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDL1oHEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+ <elementType href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQDMFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQDKloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQDMVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQDMloHEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+ <elementType href="umlMM.xml#_ArQIhloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <unit xmi:id="_ArQDM1oHEeS2WoXr83SnEA" name="umlmmmi">
+ <ownedComment xmi:id="_ArQDNFoHEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <usedPackage xmi:type="flatemofqvt:Package" href="umlMM.xml#_ArQIhVoHEeS2WoXr83SnEA"/>
+ </unit>
+ <unit xmi:id="_ArQDNVoHEeS2WoXr83SnEA" name="javammsi">
+ <usedPackage xmi:type="flatemofqvt:Package" href="javaMM.xml#_ArQImVoHEeS2WoXr83SnEA"/>
+ </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.xml
new file mode 100644
index 0000000..cc2a043
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_ArQIhFoHEeS2WoXr83SnEA" name="umlMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/MiToSi/umlMM.emof">
+ <nestedPackage xmi:id="_ArQIhVoHEeS2WoXr83SnEA" name="umlmmmi" nsURI="umlmmmi">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIhloHEeS2WoXr83SnEA" name="Class">
+ <templateParameterSubstitution href="#_ArQIkVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQIlFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_ArQIl1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="mitosi.xml#_ArQDLFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="mitosi.xml#_ArQDL1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="mitosi.xml#_ArQDMloHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_ArQIh1oHEeS2WoXr83SnEA" name="name" isID="true">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ <key href="mitosi.xml#_ArQDJloHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQCqVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQCuVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQC3VoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQC7loHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQIiFoHEeS2WoXr83SnEA" name="subs" type="_ArQIkloHEeS2WoXr83SnEA" opposite="_ArQIiVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_ArQIiVoHEeS2WoXr83SnEA" name="supers" type="_ArQIkloHEeS2WoXr83SnEA" opposite="_ArQIiFoHEeS2WoXr83SnEA">
+ <propertyItem href="mitosi.xml#_ArQCu1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQC8FoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQDEloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQIiloHEeS2WoXr83SnEA" name="type" default="">
+ <type href="OCL.xml#_ArQFbVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQCq1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="mitosi.xml#_ArQC31oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_ArQIi1oHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_ArQIjFoHEeS2WoXr83SnEA" implicit="true"
+ opposite="_ArQIjVoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCqFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCs1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQCuFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCvFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCxVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQCx1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQCzVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC0FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC1VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC2VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC6FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQC7VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQC8VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC-loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQC_loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDBFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDB1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDDFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="mitosi.xml#_ArQDEVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDE1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDGVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="mitosi.xml#_ArQDG1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDIFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="mitosi.xml#_ArQDJFoHEeS2WoXr83SnEA"/>
+ <key href="mitosi.xml#_ArQDJloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_ArQIjFoHEeS2WoXr83SnEA" name="dummy" typedElement="_ArQIi1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_ArQIjVoHEeS2WoXr83SnEA" name="containsClass" type="_ArQIkloHEeS2WoXr83SnEA" isComposite="true" opposite="_ArQIi1oHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQHCFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_ArQIjloHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIj1oHEeS2WoXr83SnEA" name="Collection" elementType="_ArQIhloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQIkFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIkVoHEeS2WoXr83SnEA" actual="_ArQIhloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQGGloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQGGVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQGGFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_ArQGyVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_ArQIkloHEeS2WoXr83SnEA" name="Set" superClass="_ArQIlVoHEeS2WoXr83SnEA" typedElement="_ArQIiFoHEeS2WoXr83SnEA _ArQIiVoHEeS2WoXr83SnEA _ArQIjVoHEeS2WoXr83SnEA"
+ elementType="_ArQIhloHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_ArQIk1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIlFoHEeS2WoXr83SnEA" actual="_ArQIhloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQIIloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIIVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_ArQIIFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_ArQIlVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_ArQIj1oHEeS2WoXr83SnEA"
+ elementType="_ArQIhloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_ArQIlloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_ArQIl1oHEeS2WoXr83SnEA" actual="_ArQIhloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_ArQIaFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_ArQIZ1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_ArQIZloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/OCL.xml
new file mode 100644
index 0000000..8489539
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/OCL.xml
@@ -0,0 +1,2880 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__ImkIFoGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <nestedPackage xmi:id="__ImkIVoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkIloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXbVoGEeS2WoXr83SnEA __IwXcVoGEeS2WoXr83SnEA"
+ contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkI1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXY1oGEeS2WoXr83SnEA"
+ contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwXYloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXaVoGEeS2WoXr83SnEA"
+ contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwXaFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXdVoGEeS2WoXr83SnEA"
+ contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwXXFoGEeS2WoXr83SnEA"
+ contextType="__IwXOVoGEeS2WoXr83SnEA" resultType="__IwWDloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkJ1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwX3loGEeS2WoXr83SnEA __IwX71oGEeS2WoXr83SnEA __IwX9FoGEeS2WoXr83SnEA __IwX91oGEeS2WoXr83SnEA __IwX_FoGEeS2WoXr83SnEA __IwYC1oGEeS2WoXr83SnEA __IwYD1oGEeS2WoXr83SnEA __IwYE1oGEeS2WoXr83SnEA"
+ contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkKFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwX5VoGEeS2WoXr83SnEA"
+ contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwX5FoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkKVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwX7FoGEeS2WoXr83SnEA"
+ contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwX61oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkKloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwYBloGEeS2WoXr83SnEA"
+ contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwYBVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkK1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwYAFoGEeS2WoXr83SnEA __IwYF1oGEeS2WoXr83SnEA"
+ contextType="__IwXe1oGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkLFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZIloGEeS2WoXr83SnEA __IwZJloGEeS2WoXr83SnEA"
+ contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkLVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZKloGEeS2WoXr83SnEA"
+ contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkLloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZEVoGEeS2WoXr83SnEA"
+ contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwY11oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkL1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZGFoGEeS2WoXr83SnEA"
+ contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwZF1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkMFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZHloGEeS2WoXr83SnEA"
+ contextType="__IwY2loGEeS2WoXr83SnEA" resultType="__IwZHVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkMVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZdloGEeS2WoXr83SnEA __IwZeloGEeS2WoXr83SnEA"
+ contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkMloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZfloGEeS2WoXr83SnEA"
+ contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkM1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZZVoGEeS2WoXr83SnEA"
+ contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwV4VoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkNFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZbFoGEeS2WoXr83SnEA"
+ contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwZa1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkNVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZcloGEeS2WoXr83SnEA"
+ contextType="__IwZL1oGEeS2WoXr83SnEA" resultType="__IwZcVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkNloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZuloGEeS2WoXr83SnEA __IwZvloGEeS2WoXr83SnEA"
+ contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwWW1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkN1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZwloGEeS2WoXr83SnEA"
+ contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkOFoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZqVoGEeS2WoXr83SnEA"
+ contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwZgFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkOVoGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZsFoGEeS2WoXr83SnEA"
+ contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwZr1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkOloGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZtloGEeS2WoXr83SnEA"
+ contextType="__IwZg1oGEeS2WoXr83SnEA" resultType="__IwZtVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__ImkO1oGEeS2WoXr83SnEA" name="Lambda" superClass="__IwYlVoGEeS2WoXr83SnEA" typedElement="__IwZ2FoGEeS2WoXr83SnEA"
+ contextType="__IwZyVoGEeS2WoXr83SnEA" resultType="__IwYKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="__ImkPFoGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="__ImkaFoGEeS2WoXr83SnEA __IwWDVoGEeS2WoXr83SnEA __IwWKFoGEeS2WoXr83SnEA"
+ superClass="__IwYq1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__ImkPVoGEeS2WoXr83SnEA" name="first" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__ImkPloGEeS2WoXr83SnEA" name="second" type="__IwXyVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkP1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__ImkaVoGEeS2WoXr83SnEA" typedElement="__IwXXloGEeS2WoXr83SnEA" elementType="__IwXYloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkQFoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkQVoGEeS2WoXr83SnEA" actual="__IwXYloGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkQloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__ImkbFoGEeS2WoXr83SnEA" typedElement="__IwXZVoGEeS2WoXr83SnEA" elementType="__IwXaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkQ1oGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkRFoGEeS2WoXr83SnEA" actual="__IwXaFoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkRVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__Imkb1oGEeS2WoXr83SnEA" typedElement="__IwXRVoGEeS2WoXr83SnEA" elementType="__IwXSVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkRloGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkR1oGEeS2WoXr83SnEA" actual="__IwXSVoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkSFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__ImkcloGEeS2WoXr83SnEA" typedElement="__IwXUFoGEeS2WoXr83SnEA" elementType="__IwXU1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkSVoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkSloGEeS2WoXr83SnEA" actual="__IwXU1oGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkS1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__ImkdVoGEeS2WoXr83SnEA" typedElement="__IwXVVoGEeS2WoXr83SnEA" elementType="__IwXWFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkTFoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkTVoGEeS2WoXr83SnEA" actual="__IwXWFoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkTloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__Imkk1oGEeS2WoXr83SnEA" typedElement="__IwXiVoGEeS2WoXr83SnEA __IwXt1oGEeS2WoXr83SnEA __IwX2VoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkT1oGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkUFoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkUVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__ImklloGEeS2WoXr83SnEA" typedElement="__IwXfFoGEeS2WoXr83SnEA" elementType="__IwXeFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkUloGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkU1oGEeS2WoXr83SnEA" actual="__IwXeFoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkVFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__ImknFoGEeS2WoXr83SnEA" typedElement="__IwYIVoGEeS2WoXr83SnEA" elementType="__IwYGVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkVVoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkVloGEeS2WoXr83SnEA" actual="__IwYGVoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkV1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__Imkn1oGEeS2WoXr83SnEA" typedElement="__IwYJloGEeS2WoXr83SnEA" elementType="__IwYIloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkWFoGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkWVoGEeS2WoXr83SnEA" actual="__IwYIloGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkWloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__IwVSFoGEeS2WoXr83SnEA" typedElement="__IwZq1oGEeS2WoXr83SnEA" elementType="__IwZr1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkW1oGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkXFoGEeS2WoXr83SnEA" actual="__IwZr1oGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__ImkXVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__IwXNloGEeS2WoXr83SnEA"
+ superClass="__IwVS1oGEeS2WoXr83SnEA" typedElement="__IwZsloGEeS2WoXr83SnEA" elementType="__IwZtVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkXloGEeS2WoXr83SnEA" signature="__IwXN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkX1oGEeS2WoXr83SnEA" actual="__IwZtVoGEeS2WoXr83SnEA" formal="__IwXOFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkYFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwWeVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkYVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkYloGEeS2WoXr83SnEA" actual="__IwWeVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkY1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwWzVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkZFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkZVoGEeS2WoXr83SnEA" actual="__IwWzVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkZloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__ImkPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkZ1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkaFoGEeS2WoXr83SnEA" actual="__ImkPFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkaVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXYloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkaloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Imka1oGEeS2WoXr83SnEA" actual="__IwXYloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkbFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkbVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkbloGEeS2WoXr83SnEA" actual="__IwXaFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkb1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXSVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkcFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkcVoGEeS2WoXr83SnEA" actual="__IwXSVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkcloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXU1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Imkc1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkdFoGEeS2WoXr83SnEA" actual="__IwXU1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkdVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXWFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkdloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Imkd1oGEeS2WoXr83SnEA" actual="__IwXWFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkeFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXT1oGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkeVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkeloGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imke1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwX4FoGEeS2WoXr83SnEA" elementType="__IwX5FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkfFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkfVoGEeS2WoXr83SnEA" actual="__IwX5FoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkfloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwX51oGEeS2WoXr83SnEA" elementType="__IwX61oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Imkf1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkgFoGEeS2WoXr83SnEA" actual="__IwX61oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkgVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXnFoGEeS2WoXr83SnEA" elementType="__IwXm1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkgloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Imkg1oGEeS2WoXr83SnEA" actual="__IwXm1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkhFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXo1oGEeS2WoXr83SnEA" elementType="__IwXp1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkhVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkhloGEeS2WoXr83SnEA" actual="__IwXp1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkh1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXsFoGEeS2WoXr83SnEA" elementType="__IwXr1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkiFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkiVoGEeS2WoXr83SnEA" actual="__IwXr1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkiloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXyloGEeS2WoXr83SnEA" elementType="__IwXyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Imki1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkjFoGEeS2WoXr83SnEA" actual="__IwXyVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkjVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXy1oGEeS2WoXr83SnEA" elementType="__IwXzloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkjloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Imkj1oGEeS2WoXr83SnEA" actual="__IwXzloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwX0FoGEeS2WoXr83SnEA" elementType="__IwX01oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkkVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkkloGEeS2WoXr83SnEA" actual="__IwX01oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImklFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImklVoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImklloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwXeFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Imkl1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkmFoGEeS2WoXr83SnEA" actual="__IwXeFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkmloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Imkm1oGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImknFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYGVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImknVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImknloGEeS2WoXr83SnEA" actual="__IwYGVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Imkn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYIloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkoFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkoVoGEeS2WoXr83SnEA" actual="__IwYIloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkoloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXRFoGEeS2WoXr83SnEA __IwXoloGEeS2WoXr83SnEA __IwY7VoGEeS2WoXr83SnEA __IwZQFoGEeS2WoXr83SnEA __IwZkVoGEeS2WoXr83SnEA"
+ elementType="__IwYKVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Imko1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__ImkpFoGEeS2WoXr83SnEA" actual="__IwYKVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkpVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkploGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Imkp1oGEeS2WoXr83SnEA" actual="__IwYaFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__ImkqFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYoVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__ImkqVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVIFoGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVIVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwYzFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVIloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVI1oGEeS2WoXr83SnEA" actual="__IwYzFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVJFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVJVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVJloGEeS2WoXr83SnEA" actual="__IwZF1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVJ1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZHVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVKFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVKVoGEeS2WoXr83SnEA" actual="__IwZHVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVKloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVK1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVLFoGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVLVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVLloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVL1oGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVMFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVMVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVMloGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVM1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwY2loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVNFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVNVoGEeS2WoXr83SnEA" actual="__IwY2loGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVNloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZa1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVN1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVOFoGEeS2WoXr83SnEA" actual="__IwZa1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVOVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZcVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVOloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVO1oGEeS2WoXr83SnEA" actual="__IwZcVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVPFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZRVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVPVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVPloGEeS2WoXr83SnEA" actual="__IwZRVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVP1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZWFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVQFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVQVoGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVQloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZXVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVQ1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVRFoGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVRVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVRloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVR1oGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVSFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZr1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVSVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVSloGEeS2WoXr83SnEA" actual="__IwZr1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVS1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZtVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVTFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVTVoGEeS2WoXr83SnEA" actual="__IwZtVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVTloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZlloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVT1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVUFoGEeS2WoXr83SnEA" actual="__IwZlloGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVUVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVUloGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVU1oGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVVFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" elementType="__IwZpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVVVoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVVloGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVV1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwZnFoGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVWFoGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVWVoGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVWloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__IwXeFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwZz1oGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVW1oGEeS2WoXr83SnEA" signature="__IwXeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVXFoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwXeloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVXVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXNVoGEeS2WoXr83SnEA" instanceType="__IwXNFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVXloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVX1oGEeS2WoXr83SnEA" actual="__IwXNFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVYFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXVFoGEeS2WoXr83SnEA" instanceType="__IwXU1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVYVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVYloGEeS2WoXr83SnEA" actual="__IwXU1oGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVY1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXWVoGEeS2WoXr83SnEA" instanceType="__IwXWFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVZFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVZVoGEeS2WoXr83SnEA" actual="__IwXWFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVZloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwXz1oGEeS2WoXr83SnEA" instanceType="__IwXzloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVZ1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVaFoGEeS2WoXr83SnEA" actual="__IwXzloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVaVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwX1FoGEeS2WoXr83SnEA" instanceType="__IwX01oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwValoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVa1oGEeS2WoXr83SnEA" actual="__IwX01oGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVbFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYOFoGEeS2WoXr83SnEA" instanceType="__IwYN1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVbVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVbloGEeS2WoXr83SnEA" actual="__IwYN1oGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVb1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYQ1oGEeS2WoXr83SnEA" instanceType="__IwYQloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVcFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVcVoGEeS2WoXr83SnEA" actual="__IwYQloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVcloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYS1oGEeS2WoXr83SnEA" instanceType="__IwYSloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVc1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVdFoGEeS2WoXr83SnEA" actual="__IwYSloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVdVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYg1oGEeS2WoXr83SnEA" instanceType="__IwYgloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVdloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVd1oGEeS2WoXr83SnEA" actual="__IwYgloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVeFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYiVoGEeS2WoXr83SnEA" instanceType="__IwYiFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVeVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVeloGEeS2WoXr83SnEA" actual="__IwYiFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVe1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYjloGEeS2WoXr83SnEA" instanceType="__IwYjVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVfFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVfVoGEeS2WoXr83SnEA" actual="__IwYjVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVfloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" instanceType="__IwYcFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVf1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVgFoGEeS2WoXr83SnEA" actual="__IwYcFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVgVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwYU1oGEeS2WoXr83SnEA __IwYkFoGEeS2WoXr83SnEA" instanceType="__IwYoVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVgloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVg1oGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVhFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" instanceType="__IwYtloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVhVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVhloGEeS2WoXr83SnEA" actual="__IwYtloGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVh1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZBVoGEeS2WoXr83SnEA" instanceType="__IwZBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwViFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwViVoGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwViloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZCloGEeS2WoXr83SnEA" instanceType="__IwZCVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVi1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVjFoGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVjVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZWVoGEeS2WoXr83SnEA" instanceType="__IwZWFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVjloGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVj1oGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVkFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZXloGEeS2WoXr83SnEA" instanceType="__IwZXVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVkVoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVkloGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVk1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZoVoGEeS2WoXr83SnEA" instanceType="__IwZoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVlFoGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVlVoGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwVlloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__IwYIloGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" typedElement="__IwZploGEeS2WoXr83SnEA" instanceType="__IwZpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVl1oGEeS2WoXr83SnEA" signature="__IwYI1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVmFoGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwYJFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVmVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__ImkYFoGEeS2WoXr83SnEA" elementType="__IwWeVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVmloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVm1oGEeS2WoXr83SnEA" actual="__IwWeVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVnFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__ImkY1oGEeS2WoXr83SnEA" elementType="__IwWzVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVnVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVnloGEeS2WoXr83SnEA" actual="__IwWzVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVn1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__ImkeFoGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVoFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVoVoGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVoloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__Imkk1oGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVo1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVpFoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVpVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__ImkmVoGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVploGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVp1oGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVqFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVJFoGEeS2WoXr83SnEA" elementType="__IwZF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVqVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVqloGEeS2WoXr83SnEA" actual="__IwZF1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVq1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVJ1oGEeS2WoXr83SnEA" elementType="__IwZHVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVrFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVrVoGEeS2WoXr83SnEA" actual="__IwZHVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVrloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVKloGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVr1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVsFoGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVsVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVLVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVsloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVs1oGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVtFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVMFoGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVtVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVtloGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVt1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVM1oGEeS2WoXr83SnEA" typedElement="__IwY51oGEeS2WoXr83SnEA __IwY_loGEeS2WoXr83SnEA" elementType="__IwY2loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVuFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVuVoGEeS2WoXr83SnEA" actual="__IwY2loGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVuloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVNloGEeS2WoXr83SnEA" elementType="__IwZa1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVu1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVvFoGEeS2WoXr83SnEA" actual="__IwZa1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVvVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVOVoGEeS2WoXr83SnEA" elementType="__IwZcVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVvloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVv1oGEeS2WoXr83SnEA" actual="__IwZcVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVwFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVPFoGEeS2WoXr83SnEA" elementType="__IwZRVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVwVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVwloGEeS2WoXr83SnEA" actual="__IwZRVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVw1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVP1oGEeS2WoXr83SnEA" elementType="__IwZWFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVxFoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVxVoGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVxloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVQloGEeS2WoXr83SnEA" elementType="__IwZXVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVx1oGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVyFoGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVyVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVRVoGEeS2WoXr83SnEA" typedElement="__IwZOloGEeS2WoXr83SnEA __IwZUloGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVyloGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVy1oGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVzFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVV1oGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwVzVoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwVzloGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwVz1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__IwYyVoGEeS2WoXr83SnEA"
+ superClass="__IwVWloGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV0FoGEeS2WoXr83SnEA" signature="__IwYyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV0VoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwYy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV0loGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVoloGEeS2WoXr83SnEA __IwWLFoGEeS2WoXr83SnEA" typedElement="__IwXi1oGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV01oGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV1FoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV1VoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVpVoGEeS2WoXr83SnEA __IwWL1oGEeS2WoXr83SnEA" typedElement="__IwYG1oGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV1loGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV11oGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV2FoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVrloGEeS2WoXr83SnEA __IwWO1oGEeS2WoXr83SnEA" typedElement="__IwY7loGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV2VoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV2loGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV21oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVsVoGEeS2WoXr83SnEA __IwWPloGEeS2WoXr83SnEA" typedElement="__IwZAVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV3FoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV3VoGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV3loGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVtFoGEeS2WoXr83SnEA __IwWQVoGEeS2WoXr83SnEA" typedElement="__IwZBloGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV31oGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV4FoGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV4VoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVyVoGEeS2WoXr83SnEA __IwWR1oGEeS2WoXr83SnEA" typedElement="__IwZY1oGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV4loGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV41oGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV5FoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVzFoGEeS2WoXr83SnEA __IwWU1oGEeS2WoXr83SnEA" typedElement="__IwZwFoGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV5VoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV5loGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwV51oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__IwY11oGEeS2WoXr83SnEA"
+ superClass="__IwVz1oGEeS2WoXr83SnEA __IwWVloGEeS2WoXr83SnEA" typedElement="__IwZ1loGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV6FoGEeS2WoXr83SnEA" signature="__IwY2FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV6VoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwY2VoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV6loGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVmVoGEeS2WoXr83SnEA" elementType="__IwWeVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV61oGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV7FoGEeS2WoXr83SnEA" actual="__IwWeVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV7VoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVnFoGEeS2WoXr83SnEA" typedElement="__IwW5FoGEeS2WoXr83SnEA __IwXJFoGEeS2WoXr83SnEA __IwXJloGEeS2WoXr83SnEA __IwXKVoGEeS2WoXr83SnEA"
+ elementType="__IwWzVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV7loGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV71oGEeS2WoXr83SnEA" actual="__IwWzVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV8FoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVn1oGEeS2WoXr83SnEA" typedElement="__IwXc1oGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV8VoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV8loGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV81oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVoloGEeS2WoXr83SnEA" typedElement="__IwXjVoGEeS2WoXr83SnEA __IwYFVoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV9FoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV9VoGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV9loGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVqFoGEeS2WoXr83SnEA" typedElement="__IwZE1oGEeS2WoXr83SnEA" elementType="__IwZF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV91oGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV-FoGEeS2WoXr83SnEA" actual="__IwZF1oGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV-VoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVq1oGEeS2WoXr83SnEA" typedElement="__IwZGloGEeS2WoXr83SnEA" elementType="__IwZHVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV-loGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV-1oGEeS2WoXr83SnEA" actual="__IwZHVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV_FoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVuloGEeS2WoXr83SnEA" typedElement="__IwZZ1oGEeS2WoXr83SnEA" elementType="__IwZa1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwV_VoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwV_loGEeS2WoXr83SnEA" actual="__IwZa1oGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwV_1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVvVoGEeS2WoXr83SnEA" typedElement="__IwZbloGEeS2WoXr83SnEA" elementType="__IwZcVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWAFoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWAVoGEeS2WoXr83SnEA" actual="__IwZcVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwWAloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVwFoGEeS2WoXr83SnEA" typedElement="__IwZQVoGEeS2WoXr83SnEA" elementType="__IwZRVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWA1oGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWBFoGEeS2WoXr83SnEA" actual="__IwZRVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwWBVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVw1oGEeS2WoXr83SnEA" typedElement="__IwZVVoGEeS2WoXr83SnEA" elementType="__IwZWFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWBloGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWB1oGEeS2WoXr83SnEA" actual="__IwZWFoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwWCFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__IwZLFoGEeS2WoXr83SnEA"
+ superClass="__IwVxloGEeS2WoXr83SnEA" typedElement="__IwZWloGEeS2WoXr83SnEA" elementType="__IwZXVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWCVoGEeS2WoXr83SnEA" signature="__IwZLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWCloGEeS2WoXr83SnEA" actual="__IwZXVoGEeS2WoXr83SnEA" formal="__IwZLloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWC1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWJloGEeS2WoXr83SnEA" typedElement="__IwXxVoGEeS2WoXr83SnEA" elementType="__ImkPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWDFoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWDVoGEeS2WoXr83SnEA" actual="__ImkPFoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWDloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWKVoGEeS2WoXr83SnEA" typedElement="__IwXWloGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWD1oGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWEFoGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWEVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWLFoGEeS2WoXr83SnEA" typedElement="__IwXj1oGEeS2WoXr83SnEA __IwXuloGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWEloGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWE1oGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWFFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWNVoGEeS2WoXr83SnEA" typedElement="__IwYbloGEeS2WoXr83SnEA" elementType="__IwYaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWFVoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWFloGEeS2WoXr83SnEA" actual="__IwYaFoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWF1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWOFoGEeS2WoXr83SnEA" typedElement="__IwWYloGEeS2WoXr83SnEA __IwYHVoGEeS2WoXr83SnEA __IwYMVoGEeS2WoXr83SnEA __IwYaloGEeS2WoXr83SnEA __IwYeFoGEeS2WoXr83SnEA __IwYfloGEeS2WoXr83SnEA __IwYvVoGEeS2WoXr83SnEA"
+ elementType="__IwYoVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWGFoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWGVoGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWGloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWSloGEeS2WoXr83SnEA" typedElement="__IwZkloGEeS2WoXr83SnEA" elementType="__IwZlloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWG1oGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWHFoGEeS2WoXr83SnEA" actual="__IwZlloGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWHVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWTVoGEeS2WoXr83SnEA" typedElement="__IwZnVoGEeS2WoXr83SnEA" elementType="__IwZoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWHloGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWH1oGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWIFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWUFoGEeS2WoXr83SnEA" typedElement="__IwZoloGEeS2WoXr83SnEA" elementType="__IwZpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWIVoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWIloGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwWI1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__IwZgFoGEeS2WoXr83SnEA"
+ superClass="__IwWVloGEeS2WoXr83SnEA" typedElement="__IwZzVoGEeS2WoXr83SnEA __IwZ0FoGEeS2WoXr83SnEA __IwZ01oGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWJFoGEeS2WoXr83SnEA" signature="__IwZgVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWJVoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwZgloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWJloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__ImkZloGEeS2WoXr83SnEA" elementType="__ImkPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWJ1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWKFoGEeS2WoXr83SnEA" actual="__ImkPFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWKVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__ImkeFoGEeS2WoXr83SnEA" elementType="__IwXOVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWKloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWK1oGEeS2WoXr83SnEA" actual="__IwXOVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWLFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__Imkk1oGEeS2WoXr83SnEA" typedElement="__IwXvFoGEeS2WoXr83SnEA" elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWLVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWLloGEeS2WoXr83SnEA" actual="__IwXe1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWL1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__ImkmVoGEeS2WoXr83SnEA" elementType="__IwYH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWMFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWMVoGEeS2WoXr83SnEA" actual="__IwYH1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWMloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__ImkoloGEeS2WoXr83SnEA" typedElement="__IwY3VoGEeS2WoXr83SnEA __IwZhloGEeS2WoXr83SnEA __IwZzFoGEeS2WoXr83SnEA __IwZ0loGEeS2WoXr83SnEA"
+ elementType="__IwYKVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWM1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWNFoGEeS2WoXr83SnEA" actual="__IwYKVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWNVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__ImkpVoGEeS2WoXr83SnEA" elementType="__IwYaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWNloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWN1oGEeS2WoXr83SnEA" actual="__IwYaFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWOFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__ImkqFoGEeS2WoXr83SnEA" elementType="__IwYoVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWOVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWOloGEeS2WoXr83SnEA" actual="__IwYoVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWO1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVKloGEeS2WoXr83SnEA" elementType="__IwY8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWPFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWPVoGEeS2WoXr83SnEA" actual="__IwY8VoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWPloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVLVoGEeS2WoXr83SnEA" elementType="__IwZBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWP1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWQFoGEeS2WoXr83SnEA" actual="__IwZBFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWQVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVMFoGEeS2WoXr83SnEA" elementType="__IwZCVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWQloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWQ1oGEeS2WoXr83SnEA" actual="__IwZCVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWRFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVM1oGEeS2WoXr83SnEA" elementType="__IwY2loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWRVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWRloGEeS2WoXr83SnEA" actual="__IwY2loGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWR1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVRVoGEeS2WoXr83SnEA" elementType="__IwZL1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWSFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWSVoGEeS2WoXr83SnEA" actual="__IwZL1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWSloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVTloGEeS2WoXr83SnEA" elementType="__IwZlloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWS1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWTFoGEeS2WoXr83SnEA" actual="__IwZlloGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWTVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVUVoGEeS2WoXr83SnEA" elementType="__IwZoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWTloGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWT1oGEeS2WoXr83SnEA" actual="__IwZoFoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWUFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVVFoGEeS2WoXr83SnEA" elementType="__IwZpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWUVoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWUloGEeS2WoXr83SnEA" actual="__IwZpVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWU1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVV1oGEeS2WoXr83SnEA" elementType="__IwZg1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWVFoGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWVVoGEeS2WoXr83SnEA" actual="__IwZg1oGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwWVloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__IwZxloGEeS2WoXr83SnEA"
+ superClass="__IwVWloGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwWV1oGEeS2WoXr83SnEA" signature="__IwZx1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwWWFoGEeS2WoXr83SnEA" actual="__IwZyVoGEeS2WoXr83SnEA" formal="__IwZyFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="__IwWWVoGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <ownedComment xmi:id="__IwWWloGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.
This sub clause contains all standard types defined within OCL, including all the operations defined on those types.
For each operation the signature and a description of the semantics is given.
Within the description, the reserved word ‘result’ is used to refer to the value that results from evaluating the operation.
In several places, post conditions are used to describe properties of the result.
When there is more than one postcondition, all postconditions must be true.
A similar thing is true for multiple preconditions.
If these are used, the operation is only defined if all preconditions evaluate to oclText[true].

heading:1[Introduction]

The structure, syntax, and semantics of the OCL is defined in Clauses 8 (“Abstract Syntax”), 9 (“Concrete Syntax”),
and 10 (“Semantics Described using UML”).
This sub clause adds another part to the OCL definition: a library of predefined types and operations.
Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,
where the language definition and the standard libraries are both mandatory parts of the complete language definition.

The OCL standard library defines a number of types.
It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.
These are familiar from many other languages. The second part of the standard library consists of the collection types.
They are Bag, Set, Sequence, and Collection where Collection is an abstract type.
Note that all types defined in the OCL standard library are instances of an abstract syntax class.
The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.

Next to definitions of types the OCL standard library defines a number of template expressions.
Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.
For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.

The Standard Library may be extended with new types, new operations and new iterators.
In particular new operations can be defined for collections.

Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted
in an appropriate fashion.
A locale is defined as a concatenation of up to three character sequences separated by underscores,
with the first sequence identifying the language and the second sequence identifying the country.
The third sequence is empty but may encode an implementation-specific variant.
Trailing empty strings and separators may be omitted.

The character sequences for languages are defined by ISO 639.

The character sequences for countries are defined by ISO 3166.

‘fr_CA’ therefore identifies the locale for the French language in the Canada country.

Comparison of strings and consequently the collation order of Collection::sortedBy()
conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.

The locale is ‘en_us’ by default but may be configured by a property constraint on OclAny::oclLocale.

The prevailing locale is defined by the prevailing value of oclLocale within the current environment;
it may therefore be changed temporarily by using a Let expression.
let oclLocale : String = ‘fr_CA’ in aString.toUpperCase()

heading:1[Iterators]

This sub clause defines the standard OCL iterator expressions.
In the abstract syntax these are all instances of IteratorExp.
These iterator expressions always have a collection expression as their source,
as is defined in the well-formedness rules in Clause 8 (“Abstract Syntax”).
The defined iterator expressions are shown per source collection type.
The semantics of each iterator expression is defined through a mapping from the iterator to the ‘iterate’ construct.
This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.

In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,
and the righthand side of the equals sign is the equivalent as an IterateExp.
The names source, body, and iterator refer to the role names in the abstract syntax:

source	The source expression of the IteratorExp.

body	The body expression of the IteratorExp.

iterator	The iterator variable of the IteratorExp.

result	The result variable of the IterateExp.

heading:2[Extending the Standard Library with Iterator Expressions]

It is possible to add new iterator expressions in the standard library.
If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,
in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWW1oGEeS2WoXr83SnEA" name="Boolean" superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__IwWXFoGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWXVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__IwWXloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWX1oGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWYFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__IwWYVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWYloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+ <ownedComment xmi:id="__IwWY1oGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWZFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isInvalidating="true" isValidating="true" precedence="__IwZ4FoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWZVoGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[true]."/>
+ <bodyExpression xmi:id="__IwWZloGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = false then false
+ else self
+ endif endif
+ else if self = false then false
+ else if b.oclIsInvalid() then b
+ else if b = false then false
+ else if self = null then null
+ else if b = null then null
+ else true
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__IwWZ1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWaFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isInvalidating="true" isValidating="true" precedence="__IwZ41oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWaVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="__IwWaloGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = false then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then b
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__IwWa1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWbFoGEeS2WoXr83SnEA" name="not" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+ precedence="__IwZ21oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWbVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].
oclText[false] if oclText[self] is oclText[true].
oclText[null] if oclText[self] is oclText[null].
Otherwise oclText[invalid]."/>
+ <bodyExpression xmi:id="__IwWbloGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if self = null then null
+ else self = false
+ endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWb1oGEeS2WoXr83SnEA" name="or" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+ isInvalidating="true" isValidating="true" precedence="__IwZ4VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWcFoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="__IwWcVoGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = true then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then null
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__IwWcloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWc1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__IwWdFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWdVoGEeS2WoXr83SnEA" name="xor" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+ precedence="__IwZ4loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWdloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].
oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null]."/>
+ <bodyExpression xmi:id="__IwWd1oGEeS2WoXr83SnEA" type="__IwWW1oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if b.oclIsInvalid() then b
+ else if self = null then null
+ else if b = null then null
+ else self <> b
+ endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__IwWeFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWXFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWX1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWZFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWZloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWZ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWaloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWa1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWbFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWbloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWb1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWcVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWcloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWdVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__IwWd1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwWeFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWqloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWrVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWsFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWs1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWtloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW0VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW1FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW11oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW2VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW21oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW3loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW7FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW71oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW-FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXBVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXFFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXLFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXOloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXPFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXg1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXhloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXlFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXl1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXqFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXq1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXvVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXw1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX7loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX8loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX9loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX-loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwX_loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__IwYCVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYK1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYLloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYOVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYPFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYPloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYRFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYRloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYTFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYWVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYXFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYX1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYYloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYcloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYdVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYeloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYe1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYfFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYfVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYhFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYhVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYiloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYj1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYkVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYkloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYmVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYm1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYnVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYrVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYr1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYs1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYuFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYuloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYv1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYwFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYwVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYwloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYw1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYxFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYxVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYxloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwY3loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwY4FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZMFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZMloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZh1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwZiVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__IwavFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__Iwa9VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__Iwa-VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__Iwa_VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__IwbHloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStm.xml#__IwbIloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWeVoGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="__ImkYloGEeS2WoXr83SnEA __IwVm1oGEeS2WoXr83SnEA __IwV7FoGEeS2WoXr83SnEA"
+ superClass="__IwWm1oGEeS2WoXr83SnEA" typedElement="__IwWeloGEeS2WoXr83SnEA __IwWfVoGEeS2WoXr83SnEA __IwWgFoGEeS2WoXr83SnEA __IwWgloGEeS2WoXr83SnEA __IwWiFoGEeS2WoXr83SnEA __IwWiloGEeS2WoXr83SnEA __IwWjVoGEeS2WoXr83SnEA __IwWj1oGEeS2WoXr83SnEA __IwWkFoGEeS2WoXr83SnEA __IwWk1oGEeS2WoXr83SnEA __IwWlloGEeS2WoXr83SnEA __IwWmFoGEeS2WoXr83SnEA __IwWvloGEeS2WoXr83SnEA __IwWwVoGEeS2WoXr83SnEA __IwWyVoGEeS2WoXr83SnEA __IwW41oGEeS2WoXr83SnEA __IwW5loGEeS2WoXr83SnEA __IwW8loGEeS2WoXr83SnEA __IwW9VoGEeS2WoXr83SnEA __IwXA1oGEeS2WoXr83SnEA __IwXEloGEeS2WoXr83SnEA __IwXE1oGEeS2WoXr83SnEA __IwXFloGEeS2WoXr83SnEA __IwXf1oGEeS2WoXr83SnEA __IwXgVoGEeS2WoXr83SnEA __IwXkVoGEeS2WoXr83SnEA __IwX1VoGEeS2WoXr83SnEA __IwYZVoGEeS2WoXr83SnEA __IwYz1oGEeS2WoXr83SnEA __IwY0loGEeS2WoXr83SnEA __IwY91oGEeS2WoXr83SnEA __IwZDVoGEeS2WoXr83SnEA __IwZDloGEeS2WoXr83SnEA __IwZS1oGEeS2WoXr83SnEA __IwZYVoGEeS2WoXr83SnEA __IwZYloGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__IwWeloGEeS2WoXr83SnEA" name="*" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="__IwZ3FoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWe1oGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+ <ownedParameter xmi:id="__IwWfFoGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWfVoGEeS2WoXr83SnEA" name="+" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWfloGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+ <ownedParameter xmi:id="__IwWf1oGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWgFoGEeS2WoXr83SnEA" name="-" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="__IwZ21oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWgVoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWgloGEeS2WoXr83SnEA" name="-" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWg1oGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+ <ownedParameter xmi:id="__IwWhFoGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWhVoGEeS2WoXr83SnEA" name="/" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="__IwZ3FoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWhloGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.
Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="__IwWh1oGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWiFoGEeS2WoXr83SnEA" name="abs" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="__IwWiVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWiloGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="__IwWi1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__IwWjFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWjVoGEeS2WoXr83SnEA" name="div" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+ <ownedComment xmi:id="__IwWjloGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+ <ownedParameter xmi:id="__IwWj1oGEeS2WoXr83SnEA" name="i" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWkFoGEeS2WoXr83SnEA" name="max" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="__IwWkVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+ <ownedParameter xmi:id="__IwWkloGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWk1oGEeS2WoXr83SnEA" name="min" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="__IwWlFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+ <ownedParameter xmi:id="__IwWlVoGEeS2WoXr83SnEA" name="i" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWlloGEeS2WoXr83SnEA" name="mod" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+ <ownedComment xmi:id="__IwWl1oGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+ <ownedParameter xmi:id="__IwWmFoGEeS2WoXr83SnEA" name="i" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWmVoGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__IwWmloGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWm1oGEeS2WoXr83SnEA" name="Real" superClass="__IwYV1oGEeS2WoXr83SnEA __IwYpFoGEeS2WoXr83SnEA"
+ typedElement="__IwWhVoGEeS2WoXr83SnEA __IwWnFoGEeS2WoXr83SnEA __IwWn1oGEeS2WoXr83SnEA __IwWoloGEeS2WoXr83SnEA __IwWpFoGEeS2WoXr83SnEA __IwWp1oGEeS2WoXr83SnEA __IwWvFoGEeS2WoXr83SnEA __IwWw1oGEeS2WoXr83SnEA __IwWxloGEeS2WoXr83SnEA __IwXHFoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__IwWnFoGEeS2WoXr83SnEA" name="*" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="__IwZ3FoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWnVoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+ <ownedParameter xmi:id="__IwWnloGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWn1oGEeS2WoXr83SnEA" name="+" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWoFoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+ <ownedParameter xmi:id="__IwWoVoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWoloGEeS2WoXr83SnEA" name="-" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="__IwZ21oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWo1oGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWpFoGEeS2WoXr83SnEA" name="-" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWpVoGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+ <ownedParameter xmi:id="__IwWploGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWp1oGEeS2WoXr83SnEA" name="/" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="__IwZ3FoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWqFoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="__IwWqVoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWqloGEeS2WoXr83SnEA" name="<" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWq1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+ <ownedParameter xmi:id="__IwWrFoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWrVoGEeS2WoXr83SnEA" name="<=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWrloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+ <ownedParameter xmi:id="__IwWr1oGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWsFoGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWsVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__IwWsloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWs1oGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWtFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__IwWtVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWtloGEeS2WoXr83SnEA" name=">" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWt1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+ <ownedParameter xmi:id="__IwWuFoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWuVoGEeS2WoXr83SnEA" name=">=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWuloGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+ <ownedParameter xmi:id="__IwWu1oGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWvFoGEeS2WoXr83SnEA" name="abs" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="__IwWvVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWvloGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="__IwWv1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__IwWwFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWwVoGEeS2WoXr83SnEA" name="floor" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+ <ownedComment xmi:id="__IwWwloGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWw1oGEeS2WoXr83SnEA" name="max" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="__IwWxFoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+ <ownedParameter xmi:id="__IwWxVoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWxloGEeS2WoXr83SnEA" name="min" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="__IwWx1oGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+ <ownedParameter xmi:id="__IwWyFoGEeS2WoXr83SnEA" name="r" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWyVoGEeS2WoXr83SnEA" name="round" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+ <ownedComment xmi:id="__IwWyloGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwWy1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__IwWzFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwWzVoGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="__ImkZVoGEeS2WoXr83SnEA __IwVnloGEeS2WoXr83SnEA __IwV71oGEeS2WoXr83SnEA"
+ superClass="__IwYV1oGEeS2WoXr83SnEA __IwYpFoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__IwWzloGEeS2WoXr83SnEA" name="+" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwWz1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="__IwW0FoGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW0VoGEeS2WoXr83SnEA" name="<" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwW0loGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__IwW01oGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW1FoGEeS2WoXr83SnEA" name="<=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwW1VoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__IwW1loGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW11oGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwW2FoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW2VoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwW2loGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW21oGEeS2WoXr83SnEA" name=">" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwW3FoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__IwW3VoGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW3loGEeS2WoXr83SnEA" name=">=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwW31oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__IwW4FoGEeS2WoXr83SnEA" name="s" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW4VoGEeS2WoXr83SnEA" name="at" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwW4loGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+ <ownedParameter xmi:id="__IwW41oGEeS2WoXr83SnEA" name="i" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW5FoGEeS2WoXr83SnEA" name="characters" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+ <ownedComment xmi:id="__IwW5VoGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW5loGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+ <ownedComment xmi:id="__IwW51oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__IwW6FoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW6VoGEeS2WoXr83SnEA" name="concat" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+ <ownedComment xmi:id="__IwW6loGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="__IwW61oGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW7FoGEeS2WoXr83SnEA" name="endsWith" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+ <ownedComment xmi:id="__IwW7VoGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.
Every string ends with the empty string."/>
+ <ownedParameter xmi:id="__IwW7loGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW71oGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+ <ownedComment xmi:id="__IwW8FoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+ <ownedParameter xmi:id="__IwW8VoGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW8loGEeS2WoXr83SnEA" name="indexOf" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+ <ownedComment xmi:id="__IwW81oGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="__IwW9FoGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW9VoGEeS2WoXr83SnEA" name="lastIndexOf" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+ <ownedComment xmi:id="__IwW9loGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="__IwW91oGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW-FoGEeS2WoXr83SnEA" name="matches" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+ <ownedComment xmi:id="__IwW-VoGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+ <ownedParameter xmi:id="__IwW-loGEeS2WoXr83SnEA" name="regex" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW-1oGEeS2WoXr83SnEA" name="replaceAll" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwW_FoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+ <ownedParameter xmi:id="__IwW_VoGEeS2WoXr83SnEA" name="regex" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwW_loGEeS2WoXr83SnEA" name="replacement" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwW_1oGEeS2WoXr83SnEA" name="replaceFirst" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwXAFoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+ <ownedParameter xmi:id="__IwXAVoGEeS2WoXr83SnEA" name="regex" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwXAloGEeS2WoXr83SnEA" name="replacement" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXA1oGEeS2WoXr83SnEA" name="size" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+ <ownedComment xmi:id="__IwXBFoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXBVoGEeS2WoXr83SnEA" name="startsWith" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+ <ownedComment xmi:id="__IwXBloGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.
Every string starts with the empty string."/>
+ <ownedParameter xmi:id="__IwXB1oGEeS2WoXr83SnEA" name="s" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXCFoGEeS2WoXr83SnEA" name="substituteAll" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+ <ownedComment xmi:id="__IwXCVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+ <ownedParameter xmi:id="__IwXCloGEeS2WoXr83SnEA" name="oldSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwXC1oGEeS2WoXr83SnEA" name="newSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXDFoGEeS2WoXr83SnEA" name="substituteFirst" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+ <ownedComment xmi:id="__IwXDVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.
Returns invalid if there is no first occurrence."/>
+ <ownedParameter xmi:id="__IwXDloGEeS2WoXr83SnEA" name="oldSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwXD1oGEeS2WoXr83SnEA" name="newSubstring" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXEFoGEeS2WoXr83SnEA" name="substring" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwXEVoGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+ <ownedParameter xmi:id="__IwXEloGEeS2WoXr83SnEA" name="lower" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwXE1oGEeS2WoXr83SnEA" name="upper" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXFFoGEeS2WoXr83SnEA" name="toBoolean" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwXFVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXFloGEeS2WoXr83SnEA" name="toInteger" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwXF1oGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXGFoGEeS2WoXr83SnEA" name="toLower" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="__IwXGVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXGloGEeS2WoXr83SnEA" name="toLowerCase" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="__IwXG1oGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXHFoGEeS2WoXr83SnEA" name="toReal" type="__IwWm1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwXHVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXHloGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__IwXH1oGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXIFoGEeS2WoXr83SnEA" name="toUpper" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="__IwXIVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXIloGEeS2WoXr83SnEA" name="toUpperCase" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="__IwXI1oGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXJFoGEeS2WoXr83SnEA" name="tokenize" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__IwXJVoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.
The delimiters are omitted from the return."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXJloGEeS2WoXr83SnEA" name="tokenize" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__IwXJ1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+ <ownedParameter xmi:id="__IwXKFoGEeS2WoXr83SnEA" name="delimiters" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXKVoGEeS2WoXr83SnEA" name="tokenize" type="__IwV7VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__IwXKloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is
true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+ <ownedParameter xmi:id="__IwXK1oGEeS2WoXr83SnEA" name="delimiters" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwXLFoGEeS2WoXr83SnEA" name="returnDelimiters" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXLVoGEeS2WoXr83SnEA" name="trim" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+ <ownedComment xmi:id="__IwXLloGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWc1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWmVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWy1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwWzloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW0FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW4VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW6VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW61oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW7loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW8VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW9FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW91oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW-loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW-1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW_VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwW_loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwW_1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXAVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXAloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXB1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXCFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXCloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXC1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXDFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXDloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXD1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXEFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXGFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXGloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXHloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXIFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXIloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXKFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwXK1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwXLVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__IwYUloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYVVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYk1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__IwYx1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbQFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbRVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbSloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__IwbWloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ51oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ7VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ8FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ91oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwZ-1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwaAloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__IwaA1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwamloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwan1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwaoFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwaqFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwasVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwatFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwaxFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa11oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa4VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa5FoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__IwXL1oGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="__IwWeVoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__IwXMFoGEeS2WoXr83SnEA" name="oclAsType" type="__IwXNFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+ <ownedComment xmi:id="__IwXMVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to
Real or Integer, but the e[unlimited] value may not.
Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+ <ownedTemplateSignature xmi:id="__IwXMloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXM1oGEeS2WoXr83SnEA" parameteredElement="__IwXNFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXNFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXM1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVX1oGEeS2WoXr83SnEA" typedElement="__IwXMFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXNVoGEeS2WoXr83SnEA" name="type" type="__IwVXVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwXNloGEeS2WoXr83SnEA" name="Bag" superClass="__ImkeFoGEeS2WoXr83SnEA" typedElement="__IwXP1oGEeS2WoXr83SnEA __IwXQloGEeS2WoXr83SnEA __IwXSloGEeS2WoXr83SnEA __IwXTVoGEeS2WoXr83SnEA __IwXa1oGEeS2WoXr83SnEA __IwXb1oGEeS2WoXr83SnEA"
+ elementType="__IwXOVoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwXN1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXOFoGEeS2WoXr83SnEA" parameteredElement="__IwXOVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXOVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwXOFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkeloGEeS2WoXr83SnEA __IwVoVoGEeS2WoXr83SnEA __IwV8loGEeS2WoXr83SnEA __IwWEFoGEeS2WoXr83SnEA __IwWK1oGEeS2WoXr83SnEA"
+ typedElement="__IwXTFoGEeS2WoXr83SnEA __IwXXVoGEeS2WoXr83SnEA __IwXZFoGEeS2WoXr83SnEA __IwXaloGEeS2WoXr83SnEA __IwXbloGEeS2WoXr83SnEA __IwXcloGEeS2WoXr83SnEA __IwXdloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwajFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaCloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__IwaYVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__Iwai1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkQFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkQ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkRloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkSVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkTFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkT1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkUloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkVVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkWFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkW1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkXloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbXloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaCVoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__IwXOloGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwXO1oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXPFoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwXPVoGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+ <ownedParameter xmi:id="__IwXPloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXP1oGEeS2WoXr83SnEA" name="excluding" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__IwXQFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+ <ownedParameter xmi:id="__IwXQVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXQloGEeS2WoXr83SnEA" name="excludingAll" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__IwXQ1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__IwXRFoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXRVoGEeS2WoXr83SnEA" name="flatten" type="__ImkRVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__IwXRloGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].
If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__IwXR1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXSFoGEeS2WoXr83SnEA" parameteredElement="__IwXSVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXSVoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXSFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkR1oGEeS2WoXr83SnEA __ImkcVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXSloGEeS2WoXr83SnEA" name="including" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__IwXS1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__IwXTFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXTVoGEeS2WoXr83SnEA" name="includingAll" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__IwXTloGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__IwXT1oGEeS2WoXr83SnEA" name="objects" type="__ImkeFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXUFoGEeS2WoXr83SnEA" name="selectByKind" type="__ImkSFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__IwXUVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXUloGEeS2WoXr83SnEA" parameteredElement="__IwXU1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXU1oGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXUloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkSloGEeS2WoXr83SnEA __ImkdFoGEeS2WoXr83SnEA __IwVYloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXVFoGEeS2WoXr83SnEA" name="type" type="__IwVYFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXVVoGEeS2WoXr83SnEA" name="selectByType" type="__ImkS1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__IwXVloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXV1oGEeS2WoXr83SnEA" parameteredElement="__IwXWFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXWFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXV1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkTVoGEeS2WoXr83SnEA __Imkd1oGEeS2WoXr83SnEA __IwVZVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXWVoGEeS2WoXr83SnEA" name="type" type="__IwVY1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXWloGEeS2WoXr83SnEA" name="closure" type="__IwWDloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__IwXW1oGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__IwXXFoGEeS2WoXr83SnEA" name="lambda" type="__ImkJloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwXXVoGEeS2WoXr83SnEA" name="i" type="__IwXOVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXXloGEeS2WoXr83SnEA" name="collectNested" type="__ImkP1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__IwXX1oGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="__IwXYFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXYVoGEeS2WoXr83SnEA" parameteredElement="__IwXYloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXYloGEeS2WoXr83SnEA" name="V" templateParameter="__IwXYVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkQVoGEeS2WoXr83SnEA __Imka1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXY1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkI1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwXZFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXZVoGEeS2WoXr83SnEA" name="collect" type="__ImkQloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__IwXZloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXZ1oGEeS2WoXr83SnEA" parameteredElement="__IwXaFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXaFoGEeS2WoXr83SnEA" name="V" templateParameter="__IwXZ1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkRFoGEeS2WoXr83SnEA __ImkbloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXaVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwXaloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXa1oGEeS2WoXr83SnEA" name="reject" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__IwXbFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].

oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+ <ownedParameter xmi:id="__IwXbVoGEeS2WoXr83SnEA" name="lambda" type="__ImkIloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwXbloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXb1oGEeS2WoXr83SnEA" name="select" type="__IwXNloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__IwXcFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].

oclCode[self->select(iterator | body) =
self->iterate(iterator; result : Bag(T) = Bag{} |
if body then result->including(iterator)
else result
endif)]"/>
+ <ownedParameter xmi:id="__IwXcVoGEeS2WoXr83SnEA" name="lambda" type="__ImkIloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwXcloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwXc1oGEeS2WoXr83SnEA" name="sortedBy" type="__IwV8FoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__IwXdFoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__IwXdVoGEeS2WoXr83SnEA" name="lambda" type="__ImkJVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwXdloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXOVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwXd1oGEeS2WoXr83SnEA" name="Class" superClass="__IwYKVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwXeFoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="__ImkU1oGEeS2WoXr83SnEA __ImkmFoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwXnVoGEeS2WoXr83SnEA __IwXoFoGEeS2WoXr83SnEA __IwXsVoGEeS2WoXr83SnEA __IwXtFoGEeS2WoXr83SnEA __IwXtloGEeS2WoXr83SnEA __IwXuVoGEeS2WoXr83SnEA __IwX21oGEeS2WoXr83SnEA __IwYDVoGEeS2WoXr83SnEA __IwYEVoGEeS2WoXr83SnEA"
+ elementType="__IwXe1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwXeVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXeloGEeS2WoXr83SnEA" parameteredElement="__IwXe1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXe1oGEeS2WoXr83SnEA" name="T" templateParameter="__IwXeloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkUFoGEeS2WoXr83SnEA __ImklVoGEeS2WoXr83SnEA __IwVpFoGEeS2WoXr83SnEA __IwV1FoGEeS2WoXr83SnEA __IwV9VoGEeS2WoXr83SnEA __IwWE1oGEeS2WoXr83SnEA __IwWLloGEeS2WoXr83SnEA"
+ typedElement="__ImkPVoGEeS2WoXr83SnEA __IwXfVoGEeS2WoXr83SnEA __IwXs1oGEeS2WoXr83SnEA __IwXv1oGEeS2WoXr83SnEA __IwXwVoGEeS2WoXr83SnEA __IwX11oGEeS2WoXr83SnEA __IwX3FoGEeS2WoXr83SnEA __IwX31oGEeS2WoXr83SnEA __IwX5loGEeS2WoXr83SnEA __IwX7VoGEeS2WoXr83SnEA __IwX8FoGEeS2WoXr83SnEA __IwX8VoGEeS2WoXr83SnEA __IwX9VoGEeS2WoXr83SnEA __IwX-FoGEeS2WoXr83SnEA __IwX-VoGEeS2WoXr83SnEA __IwX_VoGEeS2WoXr83SnEA __IwYAVoGEeS2WoXr83SnEA __IwYCFoGEeS2WoXr83SnEA __IwYDFoGEeS2WoXr83SnEA __IwYEFoGEeS2WoXr83SnEA __IwYFFoGEeS2WoXr83SnEA __IwYGFoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__IwXfFoGEeS2WoXr83SnEA" name="Collection" type="__ImkUVoGEeS2WoXr83SnEA" implicit="true" opposite="__IwXfVoGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ <templateParameterSubstitution href="orphanage.xml#__IwaNVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaPloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwabloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__Iwad1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwagFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaiVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Imka1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkbloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkcVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkdFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Imkd1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkeloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkfVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkgFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Imkg1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkhloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkiVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkjFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Imkj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkkloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImklVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkmFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Imkm1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImknloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkoVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__ImkpFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Imkp1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVIFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVI1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVJloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVKVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVLFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVL1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVMloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVNVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVOFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVO1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVPloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwVXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__Iwba1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbbloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaDVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaEFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaE1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaFloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaGVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStm.xml#__IwbLVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__IwaNFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaPVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaRloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaT1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaWFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaZFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwabVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwadloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__Iwaf1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaiFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkYVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkZFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkZ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkaloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkbVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkcFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__Imkc1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkdloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkeVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkfFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__Imkf1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkgloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkhVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkiFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__Imki1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkjloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkkVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImklFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__Imkl1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkmloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImknVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkoFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__Imko1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkploGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__ImkqVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVIloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVJVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVKFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVK1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVLloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVMVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVNFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVN1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVOloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVPVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVQFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVQ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVRloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVSVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVTFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVT1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVUloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVVVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVWFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwVW1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbYVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbZFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbZ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbaloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbbVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaDFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaD1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaEloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaFVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaGFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqToStm.xml#__IwbLFoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="__IwXfVoGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+ opposite="__IwXfFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwXfloGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwXf1oGEeS2WoXr83SnEA" isStatic="true" name="lower" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+ <ownedComment xmi:id="__IwXgFoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwXgVoGEeS2WoXr83SnEA" isStatic="true" name="upper" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+ <ownedComment xmi:id="__IwXgloGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="__IwXg1oGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwXhFoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+ <ownedParameter xmi:id="__IwXhVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXhloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwXh1oGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,
in the case of an ordered collection type."/>
+ <ownedParameter xmi:id="__IwXiFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXiVoGEeS2WoXr83SnEA" name="asBag" type="__ImkTloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+ <ownedComment xmi:id="__IwXiloGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXi1oGEeS2WoXr83SnEA" name="asOrderedSet" type="__IwV0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+ <ownedComment xmi:id="__IwXjFoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,
in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXjVoGEeS2WoXr83SnEA" name="asSequence" type="__IwV81oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+ <ownedComment xmi:id="__IwXjloGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXj1oGEeS2WoXr83SnEA" name="asSet" type="__IwWEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+ <ownedComment xmi:id="__IwXkFoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXkVoGEeS2WoXr83SnEA" name="count" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+ <ownedComment xmi:id="__IwXkloGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+ <ownedParameter xmi:id="__IwXk1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXlFoGEeS2WoXr83SnEA" name="excludes" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+ <ownedComment xmi:id="__IwXlVoGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__IwXlloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXl1oGEeS2WoXr83SnEA" name="excludesAll" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+ <ownedComment xmi:id="__IwXmFoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="__IwXmVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXmloGEeS2WoXr83SnEA" parameteredElement="__IwXm1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXm1oGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXmloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__Imkg1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXnFoGEeS2WoXr83SnEA" name="c2" type="__ImkgVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXnVoGEeS2WoXr83SnEA" name="excluding" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__IwXnloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+ <ownedParameter xmi:id="__IwXn1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXoFoGEeS2WoXr83SnEA" name="excludingAll" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__IwXoVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__IwXoloGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXo1oGEeS2WoXr83SnEA" name="flatten" type="__ImkhFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__IwXpFoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].
If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__IwXpVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXploGEeS2WoXr83SnEA" parameteredElement="__IwXp1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXp1oGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXploGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkhloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXqFoGEeS2WoXr83SnEA" name="includes" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+ <ownedComment xmi:id="__IwXqVoGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__IwXqloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXq1oGEeS2WoXr83SnEA" name="includesAll" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+ <ownedComment xmi:id="__IwXrFoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="__IwXrVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXrloGEeS2WoXr83SnEA" parameteredElement="__IwXr1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXr1oGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXrloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkiVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXsFoGEeS2WoXr83SnEA" name="c2" type="__Imkh1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXsVoGEeS2WoXr83SnEA" name="including" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__IwXsloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__IwXs1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXtFoGEeS2WoXr83SnEA" name="includingAll" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__IwXtVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__IwXtloGEeS2WoXr83SnEA" name="objects" type="__IwXeFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXt1oGEeS2WoXr83SnEA" name="intersection" type="__ImkTloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__IwXuFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+ <ownedParameter xmi:id="__IwXuVoGEeS2WoXr83SnEA" name="c" type="__IwXeFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXuloGEeS2WoXr83SnEA" name="intersection" type="__IwWEVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__IwXu1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+ <ownedParameter xmi:id="__IwXvFoGEeS2WoXr83SnEA" name="u" type="__IwWLFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXvVoGEeS2WoXr83SnEA" name="isEmpty" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+ <ownedComment xmi:id="__IwXvloGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?

Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXv1oGEeS2WoXr83SnEA" name="max" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+ <ownedComment xmi:id="__IwXwFoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].
Elements must be of a type supporting the max operation.
The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXwVoGEeS2WoXr83SnEA" name="min" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+ <ownedComment xmi:id="__IwXwloGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].
Elements must be of a type supporting the min operation.
The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXw1oGEeS2WoXr83SnEA" name="notEmpty" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+ <ownedComment xmi:id="__IwXxFoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?

oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXxVoGEeS2WoXr83SnEA" name="product" type="__IwWC1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+ <ownedComment xmi:id="__IwXxloGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+ <ownedTemplateSignature xmi:id="__IwXx1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXyFoGEeS2WoXr83SnEA" parameteredElement="__IwXyVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXyVoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwXyFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkjFoGEeS2WoXr83SnEA" typedElement="__ImkPloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXyloGEeS2WoXr83SnEA" name="c2" type="__ImkiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwXy1oGEeS2WoXr83SnEA" name="selectByKind" type="__ImkjVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__IwXzFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwXzVoGEeS2WoXr83SnEA" parameteredElement="__IwXzloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwXzloGEeS2WoXr83SnEA" name="TT" templateParameter="__IwXzVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__Imkj1oGEeS2WoXr83SnEA __IwVaFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwXz1oGEeS2WoXr83SnEA" name="type" type="__IwVZloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwX0FoGEeS2WoXr83SnEA" name="selectByType" type="__ImkkFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__IwX0VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwX0loGEeS2WoXr83SnEA" parameteredElement="__IwX01oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwX01oGEeS2WoXr83SnEA" name="TT" templateParameter="__IwX0loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkkloGEeS2WoXr83SnEA __IwVa1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwX1FoGEeS2WoXr83SnEA" name="type" type="__IwVaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwX1VoGEeS2WoXr83SnEA" name="size" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+ <ownedComment xmi:id="__IwX1loGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwX11oGEeS2WoXr83SnEA" name="sum" type="__IwXe1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+ <ownedComment xmi:id="__IwX2FoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].
Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.
The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).
UnlimitedNatural, Integer and Real fulfill this condition.

If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,
which may result in unpredictable results during evaluation.
If an implementation is able to detect a lack of associativity or commutativity,
the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwX2VoGEeS2WoXr83SnEA" name="union" type="__ImkTloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="__IwX2loGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+ <ownedParameter xmi:id="__IwX21oGEeS2WoXr83SnEA" name="c" type="__IwXeFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX3FoGEeS2WoXr83SnEA" name="any" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+ <ownedComment xmi:id="__IwX3VoGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].
If there is more than one element for which body is oclText[true], one of them is returned.
There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+ <ownedParameter xmi:id="__IwX3loGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX31oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX4FoGEeS2WoXr83SnEA" name="collectNested" type="__Imke1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__IwX4VoGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+ <ownedTemplateSignature xmi:id="__IwX4loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwX41oGEeS2WoXr83SnEA" parameteredElement="__IwX5FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwX5FoGEeS2WoXr83SnEA" name="V" templateParameter="__IwX41oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkfVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwX5VoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkKFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX5loGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX51oGEeS2WoXr83SnEA" name="collect" type="__ImkfloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedComment xmi:id="__IwX6FoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.
The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.
collectNested is defined individually for each subclass of CollectionType."/>
+ <ownedTemplateSignature xmi:id="__IwX6VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwX6loGEeS2WoXr83SnEA" parameteredElement="__IwX61oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwX61oGEeS2WoXr83SnEA" name="V" templateParameter="__IwX6loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkgFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwX7FoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkKVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX7VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX7loGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedParameter xmi:id="__IwX71oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX8FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX8VoGEeS2WoXr83SnEA" name="j" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX8loGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedComment xmi:id="__IwX81oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+ <ownedParameter xmi:id="__IwX9FoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX9VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX9loGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedParameter xmi:id="__IwX91oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX-FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX-VoGEeS2WoXr83SnEA" name="j" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX-loGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedComment xmi:id="__IwX-1oGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="__IwX_FoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwX_VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwX_loGEeS2WoXr83SnEA" name="isUnique" type="__IwWW1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+ <ownedComment xmi:id="__IwX_1oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="__IwYAFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkK1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwYAVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYAloGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="__IwYBVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+ <ownedTemplateSignature xmi:id="__IwYA1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYBFoGEeS2WoXr83SnEA" parameteredElement="__IwYBVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYBVoGEeS2WoXr83SnEA" name="Tacc" templateParameter="__IwYBFoGEeS2WoXr83SnEA"
+ typedElement="__IwYAloGEeS2WoXr83SnEA __IwYB1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwYBloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkKloGEeS2WoXr83SnEA"/>
+ <ownedAccumulator xmi:id="__IwYB1oGEeS2WoXr83SnEA" name="acc" isRequired="false" type="__IwYBVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwYCFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYCVoGEeS2WoXr83SnEA" name="one" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+ <ownedComment xmi:id="__IwYCloGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__IwYC1oGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwYDFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYDVoGEeS2WoXr83SnEA" name="reject" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__IwYDloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__IwYD1oGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwYEFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYEVoGEeS2WoXr83SnEA" name="select" type="__IwXeFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__IwYEloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__IwYE1oGEeS2WoXr83SnEA" name="lambda" type="__ImkJ1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwYFFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwYFVoGEeS2WoXr83SnEA" name="sortedBy" type="__IwV81oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__IwYFloGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__IwYF1oGEeS2WoXr83SnEA" name="lambda" type="__ImkK1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwYGFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwXe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYGVoGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="__ImkVloGEeS2WoXr83SnEA __ImknloGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYGloGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+ <ownedAttribute xmi:id="__IwYG1oGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="__IwV1VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+ opposite="__IwYIVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYHFoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="__IwYHVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+ <ownedComment xmi:id="__IwYHloGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYH1oGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="__Imkm1oGEeS2WoXr83SnEA __IwVp1oGEeS2WoXr83SnEA __IwV11oGEeS2WoXr83SnEA __IwWMVoGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYIFoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+ <ownedAttribute xmi:id="__IwYIVoGEeS2WoXr83SnEA" name="Enumeration" type="__ImkVFoGEeS2WoXr83SnEA" implicit="true" opposite="__IwYG1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__IwYIloGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="__ImkWVoGEeS2WoXr83SnEA __ImkoVoGEeS2WoXr83SnEA"
+ superClass="__IwXd1oGEeS2WoXr83SnEA __IwYsVoGEeS2WoXr83SnEA" instanceType="__IwYJVoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwYI1oGEeS2WoXr83SnEA" templateBinding="__IwVXloGEeS2WoXr83SnEA __IwVYVoGEeS2WoXr83SnEA __IwVZFoGEeS2WoXr83SnEA __IwVZ1oGEeS2WoXr83SnEA __IwValoGEeS2WoXr83SnEA __IwVbVoGEeS2WoXr83SnEA __IwVcFoGEeS2WoXr83SnEA __IwVc1oGEeS2WoXr83SnEA __IwVdloGEeS2WoXr83SnEA __IwVeVoGEeS2WoXr83SnEA __IwVfFoGEeS2WoXr83SnEA __IwVf1oGEeS2WoXr83SnEA __IwVgloGEeS2WoXr83SnEA __IwVhVoGEeS2WoXr83SnEA __IwViFoGEeS2WoXr83SnEA __IwVi1oGEeS2WoXr83SnEA __IwVjloGEeS2WoXr83SnEA __IwVkVoGEeS2WoXr83SnEA __IwVlFoGEeS2WoXr83SnEA __IwVl1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYJFoGEeS2WoXr83SnEA" parameteredElement="__IwYJVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVX1oGEeS2WoXr83SnEA __IwVYloGEeS2WoXr83SnEA __IwVZVoGEeS2WoXr83SnEA __IwVaFoGEeS2WoXr83SnEA __IwVa1oGEeS2WoXr83SnEA __IwVbloGEeS2WoXr83SnEA __IwVcVoGEeS2WoXr83SnEA __IwVdFoGEeS2WoXr83SnEA __IwVd1oGEeS2WoXr83SnEA __IwVeloGEeS2WoXr83SnEA __IwVfVoGEeS2WoXr83SnEA __IwVgFoGEeS2WoXr83SnEA __IwVg1oGEeS2WoXr83SnEA __IwVhloGEeS2WoXr83SnEA __IwViVoGEeS2WoXr83SnEA __IwVjFoGEeS2WoXr83SnEA __IwVj1oGEeS2WoXr83SnEA __IwVkloGEeS2WoXr83SnEA __IwVlVoGEeS2WoXr83SnEA __IwVmFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYJVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYJFoGEeS2WoXr83SnEA"
+ typedElement="__IwYJ1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__IwYJloGEeS2WoXr83SnEA" name="Metaclass" type="__ImkV1oGEeS2WoXr83SnEA" implicit="true" opposite="__IwYJ1oGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="__IwYJ1oGEeS2WoXr83SnEA" name="instanceType" type="__IwYJVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+ opposite="__IwYJloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYKFoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+ </ownedAttribute>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="__IwYKVoGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="__ImkpFoGEeS2WoXr83SnEA __IwWNFoGEeS2WoXr83SnEA"
+ typedElement="__IwXQVoGEeS2WoXr83SnEA __IwXk1oGEeS2WoXr83SnEA __IwXlloGEeS2WoXr83SnEA __IwXn1oGEeS2WoXr83SnEA __IwXqloGEeS2WoXr83SnEA __IwYn1oGEeS2WoXr83SnEA __IwY1FoGEeS2WoXr83SnEA __IwY6loGEeS2WoXr83SnEA __IwZPVoGEeS2WoXr83SnEA __IwZjloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYKloGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.
Conceptually, OclAny behaves as a supertype for all the types.
Features of OclAny are available on each object in all OCL expressions.
OclAny is itself an instance of the metatype AnyType.

All classes in a UML model inherit all operations defined on OclAny.
To avoid name conflicts between properties in the model and the properties inherited from OclAny,
all names on the properties of OclAny start with ‘ocl.’
Although theoretically there may still be name conflicts, they can be avoided.
One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.

Operations of OclAny, where the instance of OclAny is called object."/>
+ <ownedOperation xmi:id="__IwYK1oGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYLFoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+ <ownedParameter xmi:id="__IwYLVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYLloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYL1oGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+ <ownedParameter xmi:id="__IwYMFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYMVoGEeS2WoXr83SnEA" name="oclAsSet" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+ <ownedComment xmi:id="__IwYMloGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYM1oGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="__IwYN1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedComment xmi:id="__IwYNFoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

In the case of feature redefinition, casting an object to a supertype of its actual type
does not access the supertype’s definition of the feature;
according to the semantics of redefinition, the redefined feature simply does not exist for the object.
However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+ <ownedTemplateSignature xmi:id="__IwYNVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYNloGEeS2WoXr83SnEA" parameteredElement="__IwYN1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYN1oGEeS2WoXr83SnEA" name="TT" templateParameter="__IwYNloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVbloGEeS2WoXr83SnEA" typedElement="__IwYM1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwYOFoGEeS2WoXr83SnEA" name="type" type="__IwVbFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYOVoGEeS2WoXr83SnEA" name="oclIsInState" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+ <ownedComment xmi:id="__IwYOloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+ <ownedParameter xmi:id="__IwYO1oGEeS2WoXr83SnEA" name="statespec" type="__IwYo1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYPFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true">
+ <ownedComment xmi:id="__IwYPVoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYPloGEeS2WoXr83SnEA" name="oclIsKindOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedComment xmi:id="__IwYP1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.
That is, oclText[self] is of type t or a subtype of t."/>
+ <ownedTemplateSignature xmi:id="__IwYQFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYQVoGEeS2WoXr83SnEA" parameteredElement="__IwYQloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYQloGEeS2WoXr83SnEA" name="T" templateParameter="__IwYQVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVcVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwYQ1oGEeS2WoXr83SnEA" name="type" type="__IwVb1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYRFoGEeS2WoXr83SnEA" name="oclIsNew" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__IwYRVoGEeS2WoXr83SnEA" body="Can only be used in a postcondition.
Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn’t exist at precondition time)."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYRloGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedComment xmi:id="__IwYR1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+ <ownedTemplateSignature xmi:id="__IwYSFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYSVoGEeS2WoXr83SnEA" parameteredElement="__IwYSloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYSloGEeS2WoXr83SnEA" name="T" templateParameter="__IwYSVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVdFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwYS1oGEeS2WoXr83SnEA" name="type" type="__IwVcloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYTFoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true">
+ <ownedComment xmi:id="__IwYTVoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYTloGEeS2WoXr83SnEA" name="oclLog" type="__IwYoVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="__IwYT1oGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYUFoGEeS2WoXr83SnEA" name="oclLog" type="__IwYoVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="__IwYUVoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+ <ownedParameter xmi:id="__IwYUloGEeS2WoXr83SnEA" name="message" type="__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYU1oGEeS2WoXr83SnEA" name="oclType" type="__IwVgVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+ <ownedComment xmi:id="__IwYVFoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYVVoGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__IwYVloGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYV1oGEeS2WoXr83SnEA" name="OclComparable" superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYWFoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived
compareTo implementation may be sorted."/>
+ <ownedOperation xmi:id="__IwYWVoGEeS2WoXr83SnEA" name="<" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYWloGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+ <ownedParameter xmi:id="__IwYW1oGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYXFoGEeS2WoXr83SnEA" name="<=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYXVoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="__IwYXloGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYX1oGEeS2WoXr83SnEA" name=">" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYYFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+ <ownedParameter xmi:id="__IwYYVoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYYloGEeS2WoXr83SnEA" name=">=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+ precedence="__IwZ3loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYY1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="__IwYZFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYZVoGEeS2WoXr83SnEA" name="compareTo" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+ <ownedComment xmi:id="__IwYZloGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.

The compareTo operation should be commutative."/>
+ <ownedParameter xmi:id="__IwYZ1oGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYaFoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="__Imkp1oGEeS2WoXr83SnEA __IwWFloGEeS2WoXr83SnEA __IwWN1oGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwYbFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYaVoGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined
for OclElement are therefore applicable to all user-defined types."/>
+ <ownedOperation xmi:id="__IwYaloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+ <ownedComment xmi:id="__IwYa1oGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYbFoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="__IwYaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+ <ownedComment xmi:id="__IwYbVoGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYbloGEeS2WoXr83SnEA" name="oclContents" type="__IwWFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+ <ownedComment xmi:id="__IwYb1oGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="__IwYcFoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="__IwVgFoGEeS2WoXr83SnEA"
+ superClass="__IwYtloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYcVoGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.
It has one single instance, identified as oclText[invalid].
Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().
OclInvalid is itself an instance of the metatype InvalidType."/>
+ <ownedOperation xmi:id="__IwYcloGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYc1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="__IwYdFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYdVoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYdloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="__IwYd1oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYeFoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+ <ownedComment xmi:id="__IwYeVoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYeloGEeS2WoXr83SnEA" name="and" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="__IwZ4FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYe1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYfFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isValidating="true" precedence="__IwZ41oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYfVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYfloGEeS2WoXr83SnEA" name="oclAsSet" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+ <ownedOperation xmi:id="__IwYf1oGEeS2WoXr83SnEA" name="oclAsType" type="__IwYgloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedTemplateSignature xmi:id="__IwYgFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYgVoGEeS2WoXr83SnEA" parameteredElement="__IwYgloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYgloGEeS2WoXr83SnEA" name="TT" templateParameter="__IwYgVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVd1oGEeS2WoXr83SnEA" typedElement="__IwYf1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwYg1oGEeS2WoXr83SnEA" name="type" type="__IwVdVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYhFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__IwYhVoGEeS2WoXr83SnEA" name="oclIsKindOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedTemplateSignature xmi:id="__IwYhloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYh1oGEeS2WoXr83SnEA" parameteredElement="__IwYiFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYiFoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYh1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVeloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwYiVoGEeS2WoXr83SnEA" name="type" type="__IwVeFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYiloGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedTemplateSignature xmi:id="__IwYi1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYjFoGEeS2WoXr83SnEA" parameteredElement="__IwYjVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYjVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYjFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVfVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwYjloGEeS2WoXr83SnEA" name="type" type="__IwVe1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYj1oGEeS2WoXr83SnEA" name="oclIsUndefined" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__IwYkFoGEeS2WoXr83SnEA" name="oclType" type="__IwVgVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+ <ownedOperation xmi:id="__IwYkVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="__IwZ4VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYkloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYk1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__IwYlFoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYlVoGEeS2WoXr83SnEA" name="OclLambda" superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYlloGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda
therefore apply to all lambda expressions."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYl1oGEeS2WoXr83SnEA" name="OclMessage" superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYmFoGEeS2WoXr83SnEA" body="OclMessage
This sub clause contains the definition of the standard type OclMessage.
As defined in this sub clause, each ocl message type is actually a template type with one parameter.
‘T’ denotes the parameter.
A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType.
Every OclMessage is fully determined by either the operation, or signal given as parameter.
Note that there is conceptually an undefined (infinite) number of these types,
as each is determined by a different operation or signal.
These types are unnamed. Every type has as attributes the name of the operation or signal,
and either all formal parameters of the operation, or all attributes of the signal.
OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+ <ownedOperation xmi:id="__IwYmVoGEeS2WoXr83SnEA" name="hasReturned" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__IwYmloGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.
This implies the fact that the message has been sent. False in all other cases."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYm1oGEeS2WoXr83SnEA" name="isOperationCall" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__IwYnFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYnVoGEeS2WoXr83SnEA" name="isSignalSent" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__IwYnloGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYn1oGEeS2WoXr83SnEA" name="result" type="__IwYKVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__IwYoFoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,
and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="__IwYoVoGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="__IwVIFoGEeS2WoXr83SnEA __IwVg1oGEeS2WoXr83SnEA __IwWGVoGEeS2WoXr83SnEA __IwWOloGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwWXloGEeS2WoXr83SnEA __IwWYVoGEeS2WoXr83SnEA __IwWfFoGEeS2WoXr83SnEA __IwWf1oGEeS2WoXr83SnEA __IwWhFoGEeS2WoXr83SnEA __IwWh1oGEeS2WoXr83SnEA __IwWjFoGEeS2WoXr83SnEA __IwWkloGEeS2WoXr83SnEA __IwWlVoGEeS2WoXr83SnEA __IwWnloGEeS2WoXr83SnEA __IwWoVoGEeS2WoXr83SnEA __IwWploGEeS2WoXr83SnEA __IwWqVoGEeS2WoXr83SnEA __IwWrFoGEeS2WoXr83SnEA __IwWr1oGEeS2WoXr83SnEA __IwWsloGEeS2WoXr83SnEA __IwWtVoGEeS2WoXr83SnEA __IwWuFoGEeS2WoXr83SnEA __IwWu1oGEeS2WoXr83SnEA __IwWwFoGEeS2WoXr83SnEA __IwWxVoGEeS2WoXr83SnEA __IwWyFoGEeS2WoXr83SnEA __IwW01oGEeS2WoXr83SnEA __IwW1loGEeS2WoXr83SnEA __IwW2FoGEeS2WoXr83SnEA __IwW2loGEeS2WoXr83SnEA __IwW3VoGEeS2WoXr83SnEA __IwW4FoGEeS2WoXr83SnEA __IwW6FoGEeS2WoXr83SnEA __IwXO1oGEeS2WoXr83SnEA __IwXPloGEeS2WoXr83SnEA __IwXhVoGEeS2WoXr83SnEA __IwXiFoGEeS2WoXr83SnEA __IwYLVoGEeS2WoXr83SnEA __IwYMFoGEeS2WoXr83SnEA __IwYTloGEeS2WoXr83SnEA __IwYUFoGEeS2WoXr83SnEA __IwYW1oGEeS2WoXr83SnEA __IwYXloGEeS2WoXr83SnEA __IwYYVoGEeS2WoXr83SnEA __IwYZFoGEeS2WoXr83SnEA __IwYZ1oGEeS2WoXr83SnEA __IwYdFoGEeS2WoXr83SnEA __IwYd1oGEeS2WoXr83SnEA __IwYploGEeS2WoXr83SnEA __IwYqFoGEeS2WoXr83SnEA __IwYqVoGEeS2WoXr83SnEA __IwYrloGEeS2WoXr83SnEA __IwYsFoGEeS2WoXr83SnEA __IwYuVoGEeS2WoXr83SnEA __IwYvFoGEeS2WoXr83SnEA __IwY31oGEeS2WoXr83SnEA __IwY4VoGEeS2WoXr83SnEA __IwZMVoGEeS2WoXr83SnEA __IwZNFoGEeS2WoXr83SnEA __IwZiFoGEeS2WoXr83SnEA __IwZi1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYoloGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation
and Iteration signatures. Instances of OclSelf are never created."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYo1oGEeS2WoXr83SnEA" name="OclState" superClass="__IwYKVoGEeS2WoXr83SnEA" typedElement="__IwYO1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYpFoGEeS2WoXr83SnEA" name="OclSummable" superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYpVoGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived
sum and zero implementations may be summed."/>
+ <ownedOperation xmi:id="__IwYploGEeS2WoXr83SnEA" name="sum" type="__IwYoVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYp1oGEeS2WoXr83SnEA" body="Return the sum of self and that.

The sum operation should be associative."/>
+ <ownedParameter xmi:id="__IwYqFoGEeS2WoXr83SnEA" name="that" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYqVoGEeS2WoXr83SnEA" name="zero" type="__IwYoVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYqloGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.

zero().sum(self) = self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYq1oGEeS2WoXr83SnEA" name="OclTuple" superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYrFoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple
therefore apply to all tuples."/>
+ <ownedOperation xmi:id="__IwYrVoGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYrloGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYr1oGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYsFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwYsVoGEeS2WoXr83SnEA" name="OclType" superClass="__IwYaFoGEeS2WoXr83SnEA" typedElement="__IwYtVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYsloGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined
for OclType are therefore applicable to all UML types."/>
+ <ownedOperation xmi:id="__IwYs1oGEeS2WoXr83SnEA" name="conformsTo" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+ <ownedComment xmi:id="__IwYtFoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+ <ownedParameter xmi:id="__IwYtVoGEeS2WoXr83SnEA" name="type2" type="__IwYsVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="__IwYtloGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="__IwVhloGEeS2WoXr83SnEA"
+ superClass="__IwYKVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYt1oGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.
It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.
Any property call applied on oclText[null] results in oclText[invalid], except for the
oclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.
However, by virtue of the implicit conversion to a collection literal,
an expression evaluating to oclText[null] can be used as source of collection operations (such as ‘isEmpty’).
If the source is the oclText[null] literal, it is implicitly converted to Bag{}.

OclVoid is itself an instance of the metatype VoidType."/>
+ <ownedOperation xmi:id="__IwYuFoGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYuVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYuloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwYu1oGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]
if object is oclText[invalid], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__IwYvFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYvVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__IwWF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+ <ownedComment xmi:id="__IwYvloGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYv1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+ precedence="__IwZ4FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYwFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYwVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+ precedence="__IwZ41oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYwloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYw1oGEeS2WoXr83SnEA" name="oclIsInvalid" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__IwYxFoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__IwYxVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+ precedence="__IwZ4VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwYxloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__IwWW1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwYx1oGEeS2WoXr83SnEA" name="toString" type="__IwWzVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__IwYyFoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwYyVoGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__IwVIVoGEeS2WoXr83SnEA"
+ elementType="__IwYzFoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwYyloGEeS2WoXr83SnEA" templateBinding="__IwVmloGEeS2WoXr83SnEA __IwVnVoGEeS2WoXr83SnEA __IwVoFoGEeS2WoXr83SnEA __IwVo1oGEeS2WoXr83SnEA __IwVploGEeS2WoXr83SnEA __IwVqVoGEeS2WoXr83SnEA __IwVrFoGEeS2WoXr83SnEA __IwVr1oGEeS2WoXr83SnEA __IwVsloGEeS2WoXr83SnEA __IwVtVoGEeS2WoXr83SnEA __IwVuFoGEeS2WoXr83SnEA __IwVu1oGEeS2WoXr83SnEA __IwVvloGEeS2WoXr83SnEA __IwVwVoGEeS2WoXr83SnEA __IwVxFoGEeS2WoXr83SnEA __IwVx1oGEeS2WoXr83SnEA __IwVyloGEeS2WoXr83SnEA __IwVzVoGEeS2WoXr83SnEA __IwV0FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwYy1oGEeS2WoXr83SnEA" parameteredElement="__IwYzFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVm1oGEeS2WoXr83SnEA __IwVnloGEeS2WoXr83SnEA __IwVoVoGEeS2WoXr83SnEA __IwVpFoGEeS2WoXr83SnEA __IwVp1oGEeS2WoXr83SnEA __IwVqloGEeS2WoXr83SnEA __IwVrVoGEeS2WoXr83SnEA __IwVsFoGEeS2WoXr83SnEA __IwVs1oGEeS2WoXr83SnEA __IwVtloGEeS2WoXr83SnEA __IwVuVoGEeS2WoXr83SnEA __IwVvFoGEeS2WoXr83SnEA __IwVv1oGEeS2WoXr83SnEA __IwVwloGEeS2WoXr83SnEA __IwVxVoGEeS2WoXr83SnEA __IwVyFoGEeS2WoXr83SnEA __IwVy1oGEeS2WoXr83SnEA __IwVzloGEeS2WoXr83SnEA __IwV0VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwYzFoGEeS2WoXr83SnEA" name="T" templateParameter="__IwYy1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVI1oGEeS2WoXr83SnEA" typedElement="__IwYzVoGEeS2WoXr83SnEA __IwY0FoGEeS2WoXr83SnEA __IwY1VoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__IwYzVoGEeS2WoXr83SnEA" name="at" isRequired="false" type="__IwYzFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwYzloGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+ <ownedParameter xmi:id="__IwYz1oGEeS2WoXr83SnEA" name="index" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY0FoGEeS2WoXr83SnEA" name="first" isRequired="false" type="__IwYzFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwY0VoGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY0loGEeS2WoXr83SnEA" name="indexOf" type="__IwWeVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+ <ownedComment xmi:id="__IwY01oGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+ <ownedParameter xmi:id="__IwY1FoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY1VoGEeS2WoXr83SnEA" name="last" isRequired="false" type="__IwYzFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwY1loGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__IwY11oGEeS2WoXr83SnEA" name="OrderedSet" superClass="__IwVt1oGEeS2WoXr83SnEA __IwWRFoGEeS2WoXr83SnEA"
+ typedElement="__IwY21oGEeS2WoXr83SnEA __IwY4loGEeS2WoXr83SnEA __IwY5VoGEeS2WoXr83SnEA __IwY6FoGEeS2WoXr83SnEA __IwY61oGEeS2WoXr83SnEA __IwY8loGEeS2WoXr83SnEA __IwY9VoGEeS2WoXr83SnEA __IwY-VoGEeS2WoXr83SnEA __IwY_FoGEeS2WoXr83SnEA __IwY_1oGEeS2WoXr83SnEA __IwZC1oGEeS2WoXr83SnEA __IwZD1oGEeS2WoXr83SnEA __IwZIFoGEeS2WoXr83SnEA __IwZJFoGEeS2WoXr83SnEA __IwZKFoGEeS2WoXr83SnEA"
+ elementType="__IwY2loGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwY2FoGEeS2WoXr83SnEA" templateBinding="__IwV01oGEeS2WoXr83SnEA __IwV1loGEeS2WoXr83SnEA __IwV2VoGEeS2WoXr83SnEA __IwV3FoGEeS2WoXr83SnEA __IwV31oGEeS2WoXr83SnEA __IwV4loGEeS2WoXr83SnEA __IwV5VoGEeS2WoXr83SnEA __IwV6FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwY2VoGEeS2WoXr83SnEA" parameteredElement="__IwY2loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwV1FoGEeS2WoXr83SnEA __IwV11oGEeS2WoXr83SnEA __IwV2loGEeS2WoXr83SnEA __IwV3VoGEeS2WoXr83SnEA __IwV4FoGEeS2WoXr83SnEA __IwV41oGEeS2WoXr83SnEA __IwV5loGEeS2WoXr83SnEA __IwV6VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwY2loGEeS2WoXr83SnEA" name="T" templateParameter="__IwY2VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVNVoGEeS2WoXr83SnEA __IwVuVoGEeS2WoXr83SnEA __IwWRloGEeS2WoXr83SnEA" typedElement="__IwY5FoGEeS2WoXr83SnEA __IwY9FoGEeS2WoXr83SnEA __IwY-FoGEeS2WoXr83SnEA __IwY-1oGEeS2WoXr83SnEA __IwZEloGEeS2WoXr83SnEA __IwZGVoGEeS2WoXr83SnEA __IwZH1oGEeS2WoXr83SnEA __IwZI1oGEeS2WoXr83SnEA __IwZJ1oGEeS2WoXr83SnEA __IwZK1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__IwY21oGEeS2WoXr83SnEA" name="-" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwY3FoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__IwY3VoGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY3loGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwY31oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY4FoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwY4VoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY4loGEeS2WoXr83SnEA" name="append" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="__IwY41oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="__IwY5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY5VoGEeS2WoXr83SnEA" name="appendAll" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="__IwY5loGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="__IwY51oGEeS2WoXr83SnEA" name="objects" type="__IwVt1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY6FoGEeS2WoXr83SnEA" name="excluding" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__IwY6VoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="__IwY6loGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY61oGEeS2WoXr83SnEA" name="excludingAll" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__IwY7FoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__IwY7VoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY7loGEeS2WoXr83SnEA" name="flatten" type="__IwV2FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedTemplateSignature xmi:id="__IwY71oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwY8FoGEeS2WoXr83SnEA" parameteredElement="__IwY8VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwY8VoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwY8FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVLFoGEeS2WoXr83SnEA __IwVsFoGEeS2WoXr83SnEA __IwV2loGEeS2WoXr83SnEA __IwWPVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY8loGEeS2WoXr83SnEA" name="including" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__IwY81oGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+ <ownedParameter xmi:id="__IwY9FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY9VoGEeS2WoXr83SnEA" name="insertAt" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwY9loGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+ <ownedParameter xmi:id="__IwY91oGEeS2WoXr83SnEA" name="index" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwY-FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY-VoGEeS2WoXr83SnEA" name="prepend" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="__IwY-loGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__IwY-1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY_FoGEeS2WoXr83SnEA" name="prependAll" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="__IwY_VoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__IwY_loGEeS2WoXr83SnEA" name="objects" type="__IwVt1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwY_1oGEeS2WoXr83SnEA" name="reverse" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="__IwZAFoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZAVoGEeS2WoXr83SnEA" name="selectByKind" type="__IwV21oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__IwZAloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZA1oGEeS2WoXr83SnEA" parameteredElement="__IwZBFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZBFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZA1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVL1oGEeS2WoXr83SnEA __IwViVoGEeS2WoXr83SnEA __IwVs1oGEeS2WoXr83SnEA __IwV3VoGEeS2WoXr83SnEA __IwWQFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZBVoGEeS2WoXr83SnEA" name="type" type="__IwVh1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZBloGEeS2WoXr83SnEA" name="selectByType" type="__IwV3loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__IwZB1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZCFoGEeS2WoXr83SnEA" parameteredElement="__IwZCVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZCVoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZCFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVMloGEeS2WoXr83SnEA __IwVjFoGEeS2WoXr83SnEA __IwVtloGEeS2WoXr83SnEA __IwV4FoGEeS2WoXr83SnEA __IwWQ1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZCloGEeS2WoXr83SnEA" name="type" type="__IwViloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZC1oGEeS2WoXr83SnEA" name="subOrderedSet" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwZDFoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="__IwZDVoGEeS2WoXr83SnEA" name="lower" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwZDloGEeS2WoXr83SnEA" name="upper" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZD1oGEeS2WoXr83SnEA" name="closure" type="__IwY11oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__IwZEFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__IwZEVoGEeS2WoXr83SnEA" name="lambda" type="__ImkLloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZEloGEeS2WoXr83SnEA" name="i" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZE1oGEeS2WoXr83SnEA" name="collectNested" type="__IwV9loGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__IwZFFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="__IwZFVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZFloGEeS2WoXr83SnEA" parameteredElement="__IwZF1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZF1oGEeS2WoXr83SnEA" name="V" templateParameter="__IwZFloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVJloGEeS2WoXr83SnEA __IwVqloGEeS2WoXr83SnEA __IwV-FoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZGFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkL1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZGVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZGloGEeS2WoXr83SnEA" name="collect" type="__IwV-VoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__IwZG1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZHFoGEeS2WoXr83SnEA" parameteredElement="__IwZHVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZHVoGEeS2WoXr83SnEA" name="V" templateParameter="__IwZHFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVKVoGEeS2WoXr83SnEA __IwVrVoGEeS2WoXr83SnEA __IwV-1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZHloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkMFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZH1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZIFoGEeS2WoXr83SnEA" name="reject" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__IwZIVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__IwZIloGEeS2WoXr83SnEA" name="lambda" type="__ImkLFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZI1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZJFoGEeS2WoXr83SnEA" name="select" type="__IwY11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__IwZJVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+ <ownedParameter xmi:id="__IwZJloGEeS2WoXr83SnEA" name="lambda" type="__ImkLFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZJ1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZKFoGEeS2WoXr83SnEA" name="sortedBy" type="__IwY11oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__IwZKVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__IwZKloGEeS2WoXr83SnEA" name="lambda" type="__ImkLVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZK1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwY2loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__IwZLFoGEeS2WoXr83SnEA" name="Sequence" superClass="__IwVyVoGEeS2WoXr83SnEA"
+ typedElement="__IwZNVoGEeS2WoXr83SnEA __IwZOFoGEeS2WoXr83SnEA __IwZO1oGEeS2WoXr83SnEA __IwZPloGEeS2WoXr83SnEA __IwZRloGEeS2WoXr83SnEA __IwZSVoGEeS2WoXr83SnEA __IwZTVoGEeS2WoXr83SnEA __IwZUFoGEeS2WoXr83SnEA __IwZU1oGEeS2WoXr83SnEA __IwZX1oGEeS2WoXr83SnEA __IwZdFoGEeS2WoXr83SnEA __IwZeFoGEeS2WoXr83SnEA __IwZfFoGEeS2WoXr83SnEA"
+ elementType="__IwZL1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwZLVoGEeS2WoXr83SnEA" templateBinding="__IwV61oGEeS2WoXr83SnEA __IwV7loGEeS2WoXr83SnEA __IwV8VoGEeS2WoXr83SnEA __IwV9FoGEeS2WoXr83SnEA __IwV91oGEeS2WoXr83SnEA __IwV-loGEeS2WoXr83SnEA __IwV_VoGEeS2WoXr83SnEA __IwWAFoGEeS2WoXr83SnEA __IwWA1oGEeS2WoXr83SnEA __IwWBloGEeS2WoXr83SnEA __IwWCVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZLloGEeS2WoXr83SnEA" parameteredElement="__IwZL1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwV7FoGEeS2WoXr83SnEA __IwV71oGEeS2WoXr83SnEA __IwV8loGEeS2WoXr83SnEA __IwV9VoGEeS2WoXr83SnEA __IwV-FoGEeS2WoXr83SnEA __IwV-1oGEeS2WoXr83SnEA __IwV_loGEeS2WoXr83SnEA __IwWAVoGEeS2WoXr83SnEA __IwWBFoGEeS2WoXr83SnEA __IwWB1oGEeS2WoXr83SnEA __IwWCloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZL1oGEeS2WoXr83SnEA" name="T" templateParameter="__IwZLloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVR1oGEeS2WoXr83SnEA __IwVy1oGEeS2WoXr83SnEA __IwV41oGEeS2WoXr83SnEA __IwWSVoGEeS2WoXr83SnEA"
+ typedElement="__IwZN1oGEeS2WoXr83SnEA __IwZSFoGEeS2WoXr83SnEA __IwZTFoGEeS2WoXr83SnEA __IwZT1oGEeS2WoXr83SnEA __IwZZloGEeS2WoXr83SnEA __IwZbVoGEeS2WoXr83SnEA __IwZc1oGEeS2WoXr83SnEA __IwZd1oGEeS2WoXr83SnEA __IwZe1oGEeS2WoXr83SnEA __IwZf1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__IwZMFoGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwZMVoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZMloGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwZM1oGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+ <ownedParameter xmi:id="__IwZNFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZNVoGEeS2WoXr83SnEA" name="append" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="__IwZNloGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="__IwZN1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZOFoGEeS2WoXr83SnEA" name="appendAll" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="__IwZOVoGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="__IwZOloGEeS2WoXr83SnEA" name="objects" type="__IwVyVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZO1oGEeS2WoXr83SnEA" name="excluding" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__IwZPFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="__IwZPVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZPloGEeS2WoXr83SnEA" name="excludingAll" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__IwZP1oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__IwZQFoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZQVoGEeS2WoXr83SnEA" name="flatten" type="__IwWAloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__IwZQloGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].
If the element type is a collection type, the result is the sequence containing all the elements
of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+ <ownedTemplateSignature xmi:id="__IwZQ1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZRFoGEeS2WoXr83SnEA" parameteredElement="__IwZRVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZRVoGEeS2WoXr83SnEA" name="T2" templateParameter="__IwZRFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVPloGEeS2WoXr83SnEA __IwVwloGEeS2WoXr83SnEA __IwWBFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZRloGEeS2WoXr83SnEA" name="including" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__IwZR1oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+ <ownedParameter xmi:id="__IwZSFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZSVoGEeS2WoXr83SnEA" name="insertAt" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwZSloGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+ <ownedParameter xmi:id="__IwZS1oGEeS2WoXr83SnEA" name="index" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwZTFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZTVoGEeS2WoXr83SnEA" name="prepend" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="__IwZTloGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__IwZT1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZUFoGEeS2WoXr83SnEA" name="prependAll" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="__IwZUVoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__IwZUloGEeS2WoXr83SnEA" name="objects" type="__IwVyVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZU1oGEeS2WoXr83SnEA" name="reverse" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="__IwZVFoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZVVoGEeS2WoXr83SnEA" name="selectByKind" type="__IwWBVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__IwZVloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZV1oGEeS2WoXr83SnEA" parameteredElement="__IwZWFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZWFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZV1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVQVoGEeS2WoXr83SnEA __IwVj1oGEeS2WoXr83SnEA __IwVxVoGEeS2WoXr83SnEA __IwWB1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZWVoGEeS2WoXr83SnEA" name="type" type="__IwVjVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZWloGEeS2WoXr83SnEA" name="selectByType" type="__IwWCFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__IwZW1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZXFoGEeS2WoXr83SnEA" parameteredElement="__IwZXVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZXVoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZXFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVRFoGEeS2WoXr83SnEA __IwVkloGEeS2WoXr83SnEA __IwVyFoGEeS2WoXr83SnEA __IwWCloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZXloGEeS2WoXr83SnEA" name="type" type="__IwVkFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZX1oGEeS2WoXr83SnEA" name="subSequence" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__IwZYFoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="__IwZYVoGEeS2WoXr83SnEA" name="lower" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__IwZYloGEeS2WoXr83SnEA" name="upper" type="__IwWeVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZY1oGEeS2WoXr83SnEA" name="closure" type="__IwV4VoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__IwZZFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__IwZZVoGEeS2WoXr83SnEA" name="lambda" type="__ImkM1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZZloGEeS2WoXr83SnEA" name="i" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZZ1oGEeS2WoXr83SnEA" name="collectNested" type="__IwV_FoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__IwZaFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="__IwZaVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZaloGEeS2WoXr83SnEA" parameteredElement="__IwZa1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZa1oGEeS2WoXr83SnEA" name="V" templateParameter="__IwZaloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVOFoGEeS2WoXr83SnEA __IwVvFoGEeS2WoXr83SnEA __IwV_loGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZbFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkNFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZbVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZbloGEeS2WoXr83SnEA" name="collect" type="__IwV_1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__IwZb1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZcFoGEeS2WoXr83SnEA" parameteredElement="__IwZcVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZcVoGEeS2WoXr83SnEA" name="V" templateParameter="__IwZcFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVO1oGEeS2WoXr83SnEA __IwVv1oGEeS2WoXr83SnEA __IwWAVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZcloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkNVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZc1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZdFoGEeS2WoXr83SnEA" name="reject" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__IwZdVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__IwZdloGEeS2WoXr83SnEA" name="lambda" type="__ImkMVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZd1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZeFoGEeS2WoXr83SnEA" name="select" type="__IwZLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__IwZeVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__IwZeloGEeS2WoXr83SnEA" name="lambda" type="__ImkMVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZe1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZfFoGEeS2WoXr83SnEA" name="sortedBy" type="__IwZLFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__IwZfVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__IwZfloGEeS2WoXr83SnEA" name="lambda" type="__ImkMloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZf1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwZgFoGEeS2WoXr83SnEA" name="Set" superClass="__IwWU1oGEeS2WoXr83SnEA" typedElement="__IwZhFoGEeS2WoXr83SnEA __IwZjFoGEeS2WoXr83SnEA __IwZj1oGEeS2WoXr83SnEA __IwZl1oGEeS2WoXr83SnEA __IwZmloGEeS2WoXr83SnEA __IwZp1oGEeS2WoXr83SnEA __IwZuFoGEeS2WoXr83SnEA __IwZvFoGEeS2WoXr83SnEA"
+ elementType="__IwZg1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwZgVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZgloGEeS2WoXr83SnEA" parameteredElement="__IwZg1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZg1oGEeS2WoXr83SnEA" name="T" templateParameter="__IwZgloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVWVoGEeS2WoXr83SnEA __IwVzloGEeS2WoXr83SnEA __IwV5loGEeS2WoXr83SnEA __IwWVVoGEeS2WoXr83SnEA"
+ typedElement="__IwZmVoGEeS2WoXr83SnEA __IwZqloGEeS2WoXr83SnEA __IwZsVoGEeS2WoXr83SnEA __IwZt1oGEeS2WoXr83SnEA __IwZu1oGEeS2WoXr83SnEA __IwZv1oGEeS2WoXr83SnEA __IwZw1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaO1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__Iwaa1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwadFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwafVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwahloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__Iwaj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWDVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWEFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWE1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWFloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWGVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWHFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWH1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWIloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWJVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbcVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbdFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__Iwbd1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbeloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbfVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaHFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaH1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaIloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaJVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStm.xml#__IwbMFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__IwaOloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaQ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaTFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaVVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaXloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaaloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__Iwac1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwafFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwahVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwajloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWDFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWD1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWEloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWFVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWGFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWG1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWHloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWIVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWJFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbcFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__Iwbc1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbdloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbeVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbfFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaG1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaHloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaIVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaJFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqToStm.xml#__IwbL1oGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__IwZhFoGEeS2WoXr83SnEA" name="-" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwZhVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__IwZhloGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZh1oGEeS2WoXr83SnEA" name="<>" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__IwZiFoGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZiVoGEeS2WoXr83SnEA" name="=" type="__IwWW1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__IwZ31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwZiloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+ <ownedParameter xmi:id="__IwZi1oGEeS2WoXr83SnEA" name="object2" type="__IwYoVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZjFoGEeS2WoXr83SnEA" name="excluding" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__IwZjVoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+ <ownedParameter xmi:id="__IwZjloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZj1oGEeS2WoXr83SnEA" name="excludingAll" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__IwZkFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__IwZkVoGEeS2WoXr83SnEA" name="objects" type="__ImkoloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZkloGEeS2WoXr83SnEA" name="flatten" type="__IwWGloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__IwZk1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].
If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__IwZlFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZlVoGEeS2WoXr83SnEA" parameteredElement="__IwZlloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZlloGEeS2WoXr83SnEA" name="T2" templateParameter="__IwZlVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVUFoGEeS2WoXr83SnEA __IwWHFoGEeS2WoXr83SnEA __IwWTFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZl1oGEeS2WoXr83SnEA" name="including" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__IwZmFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__IwZmVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZmloGEeS2WoXr83SnEA" name="includingAll" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__IwZm1oGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__IwZnFoGEeS2WoXr83SnEA" name="objects" type="__IwVV1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZnVoGEeS2WoXr83SnEA" name="selectByKind" type="__IwWHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__IwZnloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZn1oGEeS2WoXr83SnEA" parameteredElement="__IwZoFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZoFoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZn1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVU1oGEeS2WoXr83SnEA __IwVlVoGEeS2WoXr83SnEA __IwWH1oGEeS2WoXr83SnEA __IwWT1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZoVoGEeS2WoXr83SnEA" name="type" type="__IwVk1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZoloGEeS2WoXr83SnEA" name="selectByType" type="__IwWIFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__IwZo1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZpFoGEeS2WoXr83SnEA" parameteredElement="__IwZpVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZpVoGEeS2WoXr83SnEA" name="TT" templateParameter="__IwZpFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVVloGEeS2WoXr83SnEA __IwVmFoGEeS2WoXr83SnEA __IwWIloGEeS2WoXr83SnEA __IwWUloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZploGEeS2WoXr83SnEA" name="type" type="__IwVlloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZp1oGEeS2WoXr83SnEA" name="closure" type="__IwZgFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__IwZqFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__IwZqVoGEeS2WoXr83SnEA" name="lambda" type="__ImkOFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZqloGEeS2WoXr83SnEA" name="i" type="__IwZg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZq1oGEeS2WoXr83SnEA" name="collectNested" type="__ImkWloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__IwZrFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="__IwZrVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZrloGEeS2WoXr83SnEA" parameteredElement="__IwZr1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZr1oGEeS2WoXr83SnEA" name="V" templateParameter="__IwZrloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkXFoGEeS2WoXr83SnEA __IwVSloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZsFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkOVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZsVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZsloGEeS2WoXr83SnEA" name="collect" type="__ImkXVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__IwZs1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZtFoGEeS2WoXr83SnEA" parameteredElement="__IwZtVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZtVoGEeS2WoXr83SnEA" name="V" templateParameter="__IwZtFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__ImkX1oGEeS2WoXr83SnEA __IwVTVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__IwZtloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__ImkOloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZt1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZuFoGEeS2WoXr83SnEA" name="reject" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__IwZuVoGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__IwZuloGEeS2WoXr83SnEA" name="lambda" type="__ImkNloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZvFoGEeS2WoXr83SnEA" name="select" type="__IwZgFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__IwZvVoGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+ <ownedParameter xmi:id="__IwZvloGEeS2WoXr83SnEA" name="lambda" type="__ImkNloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZv1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZwFoGEeS2WoXr83SnEA" name="sortedBy" type="__IwV5FoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__IwZwVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__IwZwloGEeS2WoXr83SnEA" name="lambda" type="__ImkN1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZw1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZxFoGEeS2WoXr83SnEA" name="State" superClass="__IwYo1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZxVoGEeS2WoXr83SnEA" name="Type" superClass="__IwYsVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwZxloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwVWloGEeS2WoXr83SnEA"
+ typedElement="__IwZyloGEeS2WoXr83SnEA __IwZ1VoGEeS2WoXr83SnEA" elementType="__IwZyVoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__IwZx1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__IwZyFoGEeS2WoXr83SnEA" parameteredElement="__IwZyVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__IwZyVoGEeS2WoXr83SnEA" name="T" templateParameter="__IwZyFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__IwVXFoGEeS2WoXr83SnEA __IwV0VoGEeS2WoXr83SnEA __IwV6VoGEeS2WoXr83SnEA __IwWJVoGEeS2WoXr83SnEA __IwWWFoGEeS2WoXr83SnEA"
+ typedElement="__IwZ2VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaOFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwacVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaeloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__Iwag1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWKFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWK1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWLloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWMVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWNFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWN1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWOloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWPVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWQFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWQ1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWRloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWSVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWTFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWT1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWUloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWVVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwWWFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbgFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__Iwbg1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbhloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbiVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__IwbjFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaKFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaK1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaLloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__IwaMVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStm.xml#__IwbM1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__IwaN1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaQFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaSVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaUloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaW1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaZ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwacFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwaeVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__IwagloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWJ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWKloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWLVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWMFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWM1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWNloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWOVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWPFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWP1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWQloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWRVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWSFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWS1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWTloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWUVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWVFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__IwWV1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__Iwbf1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbgloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbhVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__IwbiFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__Iwbi1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaJ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaKloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaLVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__IwaMFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqToStm.xml#__IwbMloGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__IwZyloGEeS2WoXr83SnEA" name="-" type="__IwZxloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__IwZ3VoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__IwZy1oGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__IwZzFoGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZzVoGEeS2WoXr83SnEA" name="intersection" type="__IwWI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__IwZzloGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+ <ownedParameter xmi:id="__IwZz1oGEeS2WoXr83SnEA" name="c" type="__IwVWloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZ0FoGEeS2WoXr83SnEA" name="symmetricDifference" type="__IwWI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+ <ownedComment xmi:id="__IwZ0VoGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+ <ownedParameter xmi:id="__IwZ0loGEeS2WoXr83SnEA" name="s" type="__IwWMloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__IwZ01oGEeS2WoXr83SnEA" name="union" type="__IwWI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="__IwZ1FoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+ <ownedParameter xmi:id="__IwZ1VoGEeS2WoXr83SnEA" name="s" type="__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__IwZ1loGEeS2WoXr83SnEA" name="sortedBy" type="__IwV51oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__IwZ11oGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__IwZ2FoGEeS2WoXr83SnEA" name="lambda" type="__ImkO1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__IwZ2VoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__IwZyVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedPrecedence xmi:id="__IwZ2loGEeS2WoXr83SnEA" name="NAVIGATION"/>
+ <ownedPrecedence xmi:id="__IwZ21oGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+ <ownedPrecedence xmi:id="__IwZ3FoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+ <ownedPrecedence xmi:id="__IwZ3VoGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+ <ownedPrecedence xmi:id="__IwZ3loGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+ <ownedPrecedence xmi:id="__IwZ31oGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+ <ownedPrecedence xmi:id="__IwZ4FoGEeS2WoXr83SnEA" name="AND" order="6"/>
+ <ownedPrecedence xmi:id="__IwZ4VoGEeS2WoXr83SnEA" name="OR" order="7"/>
+ <ownedPrecedence xmi:id="__IwZ4loGEeS2WoXr83SnEA" name="XOR" order="8"/>
+ <ownedPrecedence xmi:id="__IwZ41oGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.xml
new file mode 100644
index 0000000..7243d0a
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.xml
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__IwbN1oGEeS2WoXr83SnEA" name="SeqMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqMM.emof">
+ <nestedPackage xmi:id="__IwbOFoGEeS2WoXr83SnEA" name="SeqMM" nsURI="SeqMM">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbOVoGEeS2WoXr83SnEA" name="Dummy" typedElement="__IwbQVoGEeS2WoXr83SnEA __IwbW1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__IwbOloGEeS2WoXr83SnEA" name="containedState" type="__Iwbe1oGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbW1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbO1oGEeS2WoXr83SnEA" name="hasInteraction" type="__Iwbb1oGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbQVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbPFoGEeS2WoXr83SnEA" name="Event">
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbPVoGEeS2WoXr83SnEA" name="Interaction">
+ <templateParameterSubstitution href="orphanage.xml#__IwaUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbcVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbgFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbPloGEeS2WoXr83SnEA" name="lifeline" type="__IwbcloGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbQ1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbP1oGEeS2WoXr83SnEA" name="message" type="__IwbeFoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbSVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbQFoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwamVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbQVoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwbOVoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__IwbO1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbQ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbSVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwamFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwaoVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwarFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwat1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwavVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa0loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa7FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa9loGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbQloGEeS2WoXr83SnEA" name="LifeLine">
+ <templateParameterSubstitution href="orphanage.xml#__IwaNVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaOFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaO1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbdFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Iwbg1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbQ1oGEeS2WoXr83SnEA" name="interaction" type="__IwbPVoGEeS2WoXr83SnEA" opposite="__IwbPloGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__Iwaq1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbRFoGEeS2WoXr83SnEA" name="msgEvent" type="__IwbdVoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwbTFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbRVoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbRloGEeS2WoXr83SnEA" name="state" type="__Iwbe1oGEeS2WoXr83SnEA" opposite="__IwbWFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbTFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwaqloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwatloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbR1oGEeS2WoXr83SnEA" name="Message">
+ <templateParameterSubstitution href="orphanage.xml#__IwaWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Iwba1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbeloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbiVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbSFoGEeS2WoXr83SnEA" name="event" type="__IwbdVoGEeS2WoXr83SnEA" opposite="__IwbTVoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__IwaxVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbSVoGEeS2WoXr83SnEA" name="interaction" type="__IwbPVoGEeS2WoXr83SnEA" opposite="__IwbP1oGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__Iwa0VoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbSloGEeS2WoXr83SnEA" name="messageId">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwaw1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbTVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwawloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa5VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbB1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbDVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbFloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbGFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbH1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbI1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbS1oGEeS2WoXr83SnEA" name="MessageEvent" superClass="__IwbPFoGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__IwaPloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__Iwaj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__Iwbd1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbhloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStm.xml#__IwbLVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStm.xml#__IwbMFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStm.xml#__IwbM1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbTFoGEeS2WoXr83SnEA" name="lifeline" type="__IwbQloGEeS2WoXr83SnEA" opposite="__IwbRFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbTVoGEeS2WoXr83SnEA" name="message" type="__IwbR1oGEeS2WoXr83SnEA" opposite="__IwbSFoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__IwbBloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwbDFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbTloGEeS2WoXr83SnEA" name="next" type="__IwbS1oGEeS2WoXr83SnEA" opposite="__IwbU1oGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__IwbCFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbT1oGEeS2WoXr83SnEA" name="prev" type="__IwbS1oGEeS2WoXr83SnEA" opposite="__IwbUloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbUFoGEeS2WoXr83SnEA" name="state" type="__IwbV1oGEeS2WoXr83SnEA" opposite="__IwbWVoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__IwayloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwaz1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbUVoGEeS2WoXr83SnEA" name="type" type="__IwbVFoGEeS2WoXr83SnEA" default="Send">
+ <propertyItem href="SeqToStm.xml#__IwayFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwazVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwbBFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwbCloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbUloGEeS2WoXr83SnEA" name="MessageEvent" type="__IwbXVoGEeS2WoXr83SnEA" implicit="true" opposite="__IwbT1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbU1oGEeS2WoXr83SnEA" name="MessageEvent" type="__IwbXVoGEeS2WoXr83SnEA" implicit="true" opposite="__IwbTloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbTloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbT1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwax1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwazFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa51oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa6VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbA1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbCVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbFVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Enumeration" xmi:id="__IwbVFoGEeS2WoXr83SnEA" name="MessageEventType">
+ <superClass href="OCL.xml#__IwYGVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbUVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwayVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwazloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwbBVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:EnumLiteralExp" href="SeqToStm.xml#__IwbC1oGEeS2WoXr83SnEA"/>
+ <ownedLiteral xmi:id="__IwbVVoGEeS2WoXr83SnEA" name="Send"/>
+ <ownedLiteral xmi:id="__IwbVloGEeS2WoXr83SnEA" name="Receive"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwbV1oGEeS2WoXr83SnEA" name="State">
+ <templateParameterSubstitution href="orphanage.xml#__IwaR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbbloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbfVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwbjFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbWFoGEeS2WoXr83SnEA" name="lifeline" type="__IwbcloGEeS2WoXr83SnEA" opposite="__IwbRloGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__IwaqVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbWVoGEeS2WoXr83SnEA" name="messageevent" type="__IwbdVoGEeS2WoXr83SnEA" opposite="__IwbUFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwbWloGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwap1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwbW1oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwbOVoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__IwbOloGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwbUFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwaploGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwatVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iway1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa0FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa6FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa6loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa-loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa_loGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="__IwbXFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwbXVoGEeS2WoXr83SnEA" name="Bag" superClass="__IwbZloGEeS2WoXr83SnEA" typedElement="__IwbUloGEeS2WoXr83SnEA __IwbU1oGEeS2WoXr83SnEA"
+ elementType="__IwbS1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbXloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbX1oGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbYFoGEeS2WoXr83SnEA" name="Collection" elementType="__IwbPVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbYVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbYloGEeS2WoXr83SnEA" actual="__IwbPVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbY1oGEeS2WoXr83SnEA" name="Collection" elementType="__IwbQloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbZFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbZVoGEeS2WoXr83SnEA" actual="__IwbQloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbZloGEeS2WoXr83SnEA" name="Collection" elementType="__IwbS1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbZ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbaFoGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbaVoGEeS2WoXr83SnEA" name="Collection" elementType="__IwbR1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbaloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Iwba1oGEeS2WoXr83SnEA" actual="__IwbR1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbbFoGEeS2WoXr83SnEA" name="Collection" elementType="__IwbV1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbbVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbbloGEeS2WoXr83SnEA" actual="__IwbV1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__Iwbb1oGEeS2WoXr83SnEA" name="Set" superClass="__IwbfloGEeS2WoXr83SnEA" typedElement="__IwbO1oGEeS2WoXr83SnEA"
+ elementType="__IwbPVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwbcFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbcVoGEeS2WoXr83SnEA" actual="__IwbPVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbcloGEeS2WoXr83SnEA" name="Set" superClass="__IwbgVoGEeS2WoXr83SnEA" typedElement="__IwbPloGEeS2WoXr83SnEA __IwbWFoGEeS2WoXr83SnEA"
+ elementType="__IwbQloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__Iwbc1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbdFoGEeS2WoXr83SnEA" actual="__IwbQloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbdVoGEeS2WoXr83SnEA" name="Set" superClass="__IwbhFoGEeS2WoXr83SnEA" typedElement="__IwbRFoGEeS2WoXr83SnEA __IwbSFoGEeS2WoXr83SnEA __IwbWVoGEeS2WoXr83SnEA"
+ elementType="__IwbS1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwbdloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Iwbd1oGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbeFoGEeS2WoXr83SnEA" name="Set" superClass="__Iwbh1oGEeS2WoXr83SnEA" typedElement="__IwbP1oGEeS2WoXr83SnEA"
+ elementType="__IwbR1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwbeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbeloGEeS2WoXr83SnEA" actual="__IwbR1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__Iwbe1oGEeS2WoXr83SnEA" name="Set" superClass="__IwbiloGEeS2WoXr83SnEA" typedElement="__IwbOloGEeS2WoXr83SnEA __IwbRloGEeS2WoXr83SnEA"
+ elementType="__IwbV1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwbfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbfVoGEeS2WoXr83SnEA" actual="__IwbV1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbfloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbYFoGEeS2WoXr83SnEA"
+ elementType="__IwbPVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Iwbf1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbgFoGEeS2WoXr83SnEA" actual="__IwbPVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbgVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbY1oGEeS2WoXr83SnEA"
+ elementType="__IwbQloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbgloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Iwbg1oGEeS2WoXr83SnEA" actual="__IwbQloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbhFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbZloGEeS2WoXr83SnEA"
+ elementType="__IwbS1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbhVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbhloGEeS2WoXr83SnEA" actual="__IwbS1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Iwbh1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbaVoGEeS2WoXr83SnEA"
+ elementType="__IwbR1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbiVoGEeS2WoXr83SnEA" actual="__IwbR1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbiloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbbFoGEeS2WoXr83SnEA"
+ elementType="__IwbV1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Iwbi1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbjFoGEeS2WoXr83SnEA" actual="__IwbV1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.xml
new file mode 100644
index 0000000..aa51a95
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.xml
@@ -0,0 +1,520 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__IwakFoGEeS2WoXr83SnEA" name="SeqToStm.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/SeqToStm.qvtr">
+ <ownedComment xmi:id="__IwakVoGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="__IwakloGEeS2WoXr83SnEA" name="SeqToStm">
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <modelParameter xmi:id="__Iwak1oGEeS2WoXr83SnEA" name="seqDgm">
+ <usedPackage href="SeqMM.xml#__IwbOFoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <modelParameter xmi:id="__IwalFoGEeS2WoXr83SnEA" name="stm">
+ <usedPackage href="StmcMM.xml#__IwZ5VoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__IwalVoGEeS2WoXr83SnEA" name="InteractionToStateMachine" isTopLevel="true" relationCallExp="__IwavFoGEeS2WoXr83SnEA __Iwa9VoGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwalloGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+ rootVariable="__IwaoVoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__Iwal1oGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwamFoGEeS2WoXr83SnEA" bindsTo="__IwaoVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwamVoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbQFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwamloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwaoFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__Iwam1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+ rootVariable="__IwaoloGEeS2WoXr83SnEA">
+ <pattern xmi:id="__IwanFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwanVoGEeS2WoXr83SnEA" bindsTo="__IwaoloGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwanloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwZ-1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwan1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwaoFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__IwaoFoGEeS2WoXr83SnEA" name="sn" isRequired="false">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwaoVoGEeS2WoXr83SnEA" name="i" templateExp="__IwamFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwaoloGEeS2WoXr83SnEA" name="s" templateExp="__IwanVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </variable>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__Iwao1oGEeS2WoXr83SnEA" name="StateToState" isTopLevel="true" relationCallExp="__Iwa-VoGEeS2WoXr83SnEA __Iwa_VoGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwapFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+ rootVariable="__IwatVoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__IwapVoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwaploGEeS2WoXr83SnEA" bindsTo="__IwatVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__Iwap1oGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbWloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwaqFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwatFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__IwaqVoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbWFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwaqloGEeS2WoXr83SnEA" bindsTo="__IwatloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ <part xmi:id="__Iwaq1oGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbQ1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwarFoGEeS2WoXr83SnEA" bindsTo="__Iwat1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ <referredClass href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwarVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+ rootVariable="__IwauFoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__IwarloGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwar1oGEeS2WoXr83SnEA" bindsTo="__IwauFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwasFoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwZ91oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwasVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__IwatFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__IwasloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwZ-VoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwas1oGEeS2WoXr83SnEA" bindsTo="__IwauVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__IwatFoGEeS2WoXr83SnEA" name="sn" isRequired="false">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwatVoGEeS2WoXr83SnEA" name="st1" templateExp="__IwaploGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwatloGEeS2WoXr83SnEA" name="l" templateExp="__IwaqloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwat1oGEeS2WoXr83SnEA" name="i" templateExp="__IwarFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwauFoGEeS2WoXr83SnEA" name="st2" templateExp="__Iwar1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwauVoGEeS2WoXr83SnEA" name="s" templateExp="__Iwas1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="__IwauloGEeS2WoXr83SnEA">
+ <predicate xmi:id="__Iwau1oGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__IwavFoGEeS2WoXr83SnEA" referredRelation="__IwalVoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwavVoGEeS2WoXr83SnEA" referredVariable="__Iwat1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwavloGEeS2WoXr83SnEA" referredVariable="__IwauVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </when>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__Iwav1oGEeS2WoXr83SnEA" name="MessageToTransition" isTopLevel="true" relationCallExp="__IwbHloGEeS2WoXr83SnEA __IwbIloGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwawFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+ rootVariable="__Iwa5VoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__IwawVoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwawloGEeS2WoXr83SnEA" bindsTo="__Iwa5VoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__Iwaw1oGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbSloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__IwaxFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__Iwa5FoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__IwaxVoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbSFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__IwaxloGEeS2WoXr83SnEA" type="__IwbLloGEeS2WoXr83SnEA" bindsTo="__Iwa5loGEeS2WoXr83SnEA"
+ rest="__Iwa61oGEeS2WoXr83SnEA">
+ <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwax1oGEeS2WoXr83SnEA" bindsTo="__Iwa51oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwayFoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwayVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+ <referredEnumLiteral href="SeqMM.xml#__IwbVVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__IwayloGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbUFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iway1oGEeS2WoXr83SnEA" bindsTo="__Iwa6FoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ <referredClass href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </member>
+ <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwazFoGEeS2WoXr83SnEA" bindsTo="__Iwa6VoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwazVoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwazloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+ <referredEnumLiteral href="SeqMM.xml#__IwbVloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__Iwaz1oGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbUFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa0FoGEeS2WoXr83SnEA" bindsTo="__Iwa6loGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ <referredClass href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </member>
+ <referredCollectionType href="orphanage.xml#__IwajVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__Iwa0VoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbSVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa0loGEeS2WoXr83SnEA" bindsTo="__Iwa7FoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ <referredClass href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__Iwa01oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+ rootVariable="__Iwa7VoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__Iwa1FoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa1VoGEeS2WoXr83SnEA" bindsTo="__Iwa7VoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__Iwa1loGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwaA1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa11oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__Iwa5FoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__Iwa2FoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwaAVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa2VoGEeS2WoXr83SnEA" bindsTo="__Iwa7loGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__Iwa2loGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwaBVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa21oGEeS2WoXr83SnEA" bindsTo="__Iwa71oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__Iwa3FoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwaAFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa3VoGEeS2WoXr83SnEA" bindsTo="__Iwa8FoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__Iwa3loGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwZ9FoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa31oGEeS2WoXr83SnEA" bindsTo="__Iwa8VoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__Iwa4FoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwZ8FoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa4VoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__Iwa5FoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__Iwa4loGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwaBFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__Iwa41oGEeS2WoXr83SnEA" bindsTo="__Iwa8loGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__Iwa5FoGEeS2WoXr83SnEA" name="mid" isRequired="false">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa5VoGEeS2WoXr83SnEA" name="m1" templateExp="__IwawloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa5loGEeS2WoXr83SnEA" type="__IwbLloGEeS2WoXr83SnEA" templateExp="__IwaxloGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__Iwa51oGEeS2WoXr83SnEA" name="send" templateExp="__Iwax1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa6FoGEeS2WoXr83SnEA" name="ist1" templateExp="__Iway1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa6VoGEeS2WoXr83SnEA" name="receive" templateExp="__IwazFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa6loGEeS2WoXr83SnEA" name="ist2" templateExp="__Iwa0FoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa61oGEeS2WoXr83SnEA" implicit="true" matchingExp="__IwaxloGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__Iwa7FoGEeS2WoXr83SnEA" name="i" templateExp="__Iwa0loGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa7VoGEeS2WoXr83SnEA" name="tr" templateExp="__Iwa1VoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa7loGEeS2WoXr83SnEA" name="fst" templateExp="__Iwa2VoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa71oGEeS2WoXr83SnEA" name="tst" templateExp="__Iwa21oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa8FoGEeS2WoXr83SnEA" name="sm" templateExp="__Iwa3VoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa8VoGEeS2WoXr83SnEA" name="m2" templateExp="__Iwa31oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__Iwa8loGEeS2WoXr83SnEA" name="s" templateExp="__Iwa41oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="__Iwa81oGEeS2WoXr83SnEA">
+ <predicate xmi:id="__Iwa9FoGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__Iwa9VoGEeS2WoXr83SnEA" referredRelation="__IwalVoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa9loGEeS2WoXr83SnEA" referredVariable="__Iwa7FoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa91oGEeS2WoXr83SnEA" referredVariable="__Iwa8loGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="__Iwa-FoGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__Iwa-VoGEeS2WoXr83SnEA" referredRelation="__Iwao1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa-loGEeS2WoXr83SnEA" referredVariable="__Iwa6FoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa-1oGEeS2WoXr83SnEA" referredVariable="__Iwa7loGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="__Iwa_FoGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__Iwa_VoGEeS2WoXr83SnEA" referredRelation="__Iwao1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa_loGEeS2WoXr83SnEA" referredVariable="__Iwa6loGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__Iwa_1oGEeS2WoXr83SnEA" referredVariable="__Iwa71oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </when>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__IwbAFoGEeS2WoXr83SnEA" name="MessageSequenceToTransitionSequence" isTopLevel="true">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwbAVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="__Iwak1oGEeS2WoXr83SnEA"
+ rootVariable="__IwbFVoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__IwbAloGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbA1oGEeS2WoXr83SnEA" bindsTo="__IwbFVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwbBFoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwbBVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+ <referredEnumLiteral href="SeqMM.xml#__IwbVloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__IwbBloGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbTVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbB1oGEeS2WoXr83SnEA" bindsTo="__IwbFloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ <referredClass href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__IwbCFoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbTloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbCVoGEeS2WoXr83SnEA" bindsTo="__IwbF1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwbCloGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbUVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:EnumLiteralExp" xmi:id="__IwbC1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbVFoGEeS2WoXr83SnEA"/>
+ <referredEnumLiteral href="SeqMM.xml#__IwbVVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__IwbDFoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__IwbTVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbDVoGEeS2WoXr83SnEA" bindsTo="__IwbGFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ <referredClass href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__IwbDloGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__IwalFoGEeS2WoXr83SnEA"
+ rootVariable="__IwbGVoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__IwbD1oGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbEFoGEeS2WoXr83SnEA" bindsTo="__IwbGVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwbEVoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwaBVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbEloGEeS2WoXr83SnEA" bindsTo="__IwbGloGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__IwbE1oGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__IwZ-FoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__IwbFFoGEeS2WoXr83SnEA" bindsTo="__IwbG1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__IwbFVoGEeS2WoXr83SnEA" name="ev1" templateExp="__IwbA1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwbFloGEeS2WoXr83SnEA" name="m1" templateExp="__IwbB1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwbF1oGEeS2WoXr83SnEA" name="ev2" templateExp="__IwbCVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwbGFoGEeS2WoXr83SnEA" name="m2" templateExp="__IwbDVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwbGVoGEeS2WoXr83SnEA" name="tr1" templateExp="__IwbEFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwbGloGEeS2WoXr83SnEA" name="tst" templateExp="__IwbEloGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__IwbG1oGEeS2WoXr83SnEA" name="tr2" templateExp="__IwbFFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="__IwbHFoGEeS2WoXr83SnEA">
+ <predicate xmi:id="__IwbHVoGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__IwbHloGEeS2WoXr83SnEA" referredRelation="__Iwav1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbH1oGEeS2WoXr83SnEA" referredVariable="__IwbFloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbIFoGEeS2WoXr83SnEA" referredVariable="__IwbGVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="__IwbIVoGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__IwbIloGEeS2WoXr83SnEA" referredRelation="__Iwav1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__IwWW1oGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbI1oGEeS2WoXr83SnEA" referredVariable="__IwbGFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__IwbJFoGEeS2WoXr83SnEA" referredVariable="__IwbG1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </when>
+ </rule>
+ <ownedKey xmi:id="__IwbJVoGEeS2WoXr83SnEA">
+ <identifies href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwZ-1oGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="__IwbJloGEeS2WoXr83SnEA">
+ <identifies href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwZ91oGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwZ-VoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="__IwbJ1oGEeS2WoXr83SnEA">
+ <identifies href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwaA1oGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwaBFoGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwaAVoGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwaBVoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="__IwbKFoGEeS2WoXr83SnEA">
+ <identifies href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwZ9FoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="__IwbKVoGEeS2WoXr83SnEA">
+ <identifies href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ <part href="StmcMM.xml#__IwZ8FoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ </nestedPackage>
+ <nestedPackage xmi:id="__IwbKloGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbK1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwbLFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbLVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwbLloGEeS2WoXr83SnEA" name="Set" superClass="__IwbMVoGEeS2WoXr83SnEA" typedElement="__IwaxloGEeS2WoXr83SnEA __Iwa5loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbL1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbMFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwbMVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwbK1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwbMloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwbM1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <unit xmi:id="__IwbNFoGEeS2WoXr83SnEA" name="SeqMM">
+ <ownedComment xmi:id="__IwbNVoGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <usedPackage xmi:type="flatemofqvt:Package" href="SeqMM.xml#__IwbOFoGEeS2WoXr83SnEA"/>
+ </unit>
+ <unit xmi:id="__IwbNloGEeS2WoXr83SnEA" name="StmcMM">
+ <usedPackage xmi:type="flatemofqvt:Package" href="StmcMM.xml#__IwZ5VoGEeS2WoXr83SnEA"/>
+ </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.xml
new file mode 100644
index 0000000..7036716
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.xml
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__IwZ5FoGEeS2WoXr83SnEA" name="StmcMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/StmcMM.emof">
+ <nestedPackage xmi:id="__IwZ5VoGEeS2WoXr83SnEA" name="StmcMM" nsURI="StmcMM">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ5loGEeS2WoXr83SnEA" name="Action" typedElement="__IwaAFoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__IwZ51oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwZ6FoGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__IwZ_1oGEeS2WoXr83SnEA" implicit="true"
+ opposite="__IwaAFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ6VoGEeS2WoXr83SnEA" name="Dummy" typedElement="__IwZ8VoGEeS2WoXr83SnEA __IwZ_loGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__IwZ6loGEeS2WoXr83SnEA" name="containsMessage" type="__IwaGloGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ8VoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ61oGEeS2WoXr83SnEA" name="containsStateMachine" type="__IwaHVoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ_loGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ7FoGEeS2WoXr83SnEA" name="Event" typedElement="__IwaBloGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__IwZ7VoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwZ7loGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__IwZ_1oGEeS2WoXr83SnEA" implicit="true"
+ opposite="__IwaBloGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ71oGEeS2WoXr83SnEA" name="Message">
+ <templateParameterSubstitution href="orphanage.xml#__Iwad1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaeloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwafVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaDVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaHFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaKFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ8FoGEeS2WoXr83SnEA" name="messageId">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbKVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwa4FoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwZ8VoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwZ6VoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__IwZ6loGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ8loGEeS2WoXr83SnEA" name="SendMsg" type="__IwaCFoGEeS2WoXr83SnEA" implicit="true" opposite="__IwZ9FoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ9FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa31oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa8VoGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ81oGEeS2WoXr83SnEA" name="SendMsg" superClass="__IwZ5loGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__IwaiVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwajFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaCloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaEFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ9FoGEeS2WoXr83SnEA" name="message" type="__IwZ71oGEeS2WoXr83SnEA" opposite="__IwZ8loGEeS2WoXr83SnEA">
+ <key href="SeqToStm.xml#__IwbKFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwa3loGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa3VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa8FoGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbKFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ9VoGEeS2WoXr83SnEA" name="State">
+ <templateParameterSubstitution href="orphanage.xml#__IwabloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwacVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwadFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaFloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaIloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaLloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ9loGEeS2WoXr83SnEA" name="inTransition" type="__IwaI1oGEeS2WoXr83SnEA" opposite="__IwaBVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ91oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbJloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwasFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwZ-FoGEeS2WoXr83SnEA" name="outTransition" type="__IwaI1oGEeS2WoXr83SnEA" opposite="__IwaAVoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__IwbE1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwZ-VoGEeS2WoXr83SnEA" name="owner" type="__IwZ-loGEeS2WoXr83SnEA" opposite="__IwZ_FoGEeS2WoXr83SnEA">
+ <key href="SeqToStm.xml#__IwbJloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwasloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwaAVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwaBVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwar1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwauFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa2VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa21oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa7loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa71oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa-1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa_1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbEloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbGloGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbJloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ-loGEeS2WoXr83SnEA" name="StateMachine">
+ <templateParameterSubstitution href="orphanage.xml#__IwagFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__Iwag1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwahloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaE1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaH1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaK1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ-1oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbJVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwanloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwZ_FoGEeS2WoXr83SnEA" name="state" type="__IwaIFoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ-VoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ_VoGEeS2WoXr83SnEA" name="transition" type="__IwaI1oGEeS2WoXr83SnEA" isComposite="true" opposite="__IwaBFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwZ_loGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__IwZ6VoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__IwZ61oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ-VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwaBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwanVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwaoloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwas1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwauVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwavloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa41oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa8loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__Iwa91oGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbJVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__IwZ_1oGEeS2WoXr83SnEA" name="Transition">
+ <templateParameterSubstitution href="orphanage.xml#__IwaZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__IwaaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__Iwaa1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaGVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaJVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__IwaMVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__IwaAFoGEeS2WoXr83SnEA" name="action" type="__IwZ5loGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ6FoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStm.xml#__Iwa3FoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwaAVoGEeS2WoXr83SnEA" name="fromState" type="__IwZ9VoGEeS2WoXr83SnEA" opposite="__IwZ-FoGEeS2WoXr83SnEA">
+ <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwa2FoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwaAloGEeS2WoXr83SnEA" name="guard">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwaA1oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__IwWzVoGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwa1loGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwaBFoGEeS2WoXr83SnEA" name="owner" type="__IwZ-loGEeS2WoXr83SnEA" opposite="__IwZ_VoGEeS2WoXr83SnEA">
+ <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwa4loGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwaBVoGEeS2WoXr83SnEA" name="toState" type="__IwZ9VoGEeS2WoXr83SnEA" opposite="__IwZ9loGEeS2WoXr83SnEA">
+ <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__Iwa2loGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStm.xml#__IwbEVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__IwaBloGEeS2WoXr83SnEA" name="trigger" type="__IwZ7FoGEeS2WoXr83SnEA" isComposite="true" opposite="__IwZ7loGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ6FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__IwZ7loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__Iwa1VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__Iwa7VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbEFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStm.xml#__IwbFFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbGVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStm.xml#__IwbG1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbIFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStm.xml#__IwbJFoGEeS2WoXr83SnEA"/>
+ <key href="SeqToStm.xml#__IwbJ1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="__IwaB1oGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwaCFoGEeS2WoXr83SnEA" name="Bag" superClass="__IwaDloGEeS2WoXr83SnEA" typedElement="__IwZ8loGEeS2WoXr83SnEA"
+ elementType="__IwZ81oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaCVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaCloGEeS2WoXr83SnEA" actual="__IwZ81oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaC1oGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ71oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaDVoGEeS2WoXr83SnEA" actual="__IwZ71oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaDloGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ81oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaEFoGEeS2WoXr83SnEA" actual="__IwZ81oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaEVoGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ-loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaEloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaE1oGEeS2WoXr83SnEA" actual="__IwZ-loGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaFFoGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ9VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaFloGEeS2WoXr83SnEA" actual="__IwZ9VoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaF1oGEeS2WoXr83SnEA" name="Collection" elementType="__IwZ_1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaGVoGEeS2WoXr83SnEA" actual="__IwZ_1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaGloGEeS2WoXr83SnEA" name="Set" superClass="__IwaJloGEeS2WoXr83SnEA" typedElement="__IwZ6loGEeS2WoXr83SnEA"
+ elementType="__IwZ71oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaHFoGEeS2WoXr83SnEA" actual="__IwZ71oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaHVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaKVoGEeS2WoXr83SnEA" typedElement="__IwZ61oGEeS2WoXr83SnEA"
+ elementType="__IwZ-loGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaHloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaH1oGEeS2WoXr83SnEA" actual="__IwZ-loGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaIFoGEeS2WoXr83SnEA" name="Set" superClass="__IwaLFoGEeS2WoXr83SnEA" typedElement="__IwZ_FoGEeS2WoXr83SnEA"
+ elementType="__IwZ9VoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaIVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaIloGEeS2WoXr83SnEA" actual="__IwZ9VoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaI1oGEeS2WoXr83SnEA" name="Set" superClass="__IwaL1oGEeS2WoXr83SnEA" typedElement="__IwZ9loGEeS2WoXr83SnEA __IwZ-FoGEeS2WoXr83SnEA __IwZ_VoGEeS2WoXr83SnEA"
+ elementType="__IwZ_1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaJFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaJVoGEeS2WoXr83SnEA" actual="__IwZ_1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaJloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaC1oGEeS2WoXr83SnEA"
+ elementType="__IwZ71oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaJ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaKFoGEeS2WoXr83SnEA" actual="__IwZ71oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaKVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaEVoGEeS2WoXr83SnEA"
+ elementType="__IwZ-loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaKloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaK1oGEeS2WoXr83SnEA" actual="__IwZ-loGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaLFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaFFoGEeS2WoXr83SnEA"
+ elementType="__IwZ9VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaLloGEeS2WoXr83SnEA" actual="__IwZ9VoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaL1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaF1oGEeS2WoXr83SnEA"
+ elementType="__IwZ_1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaMFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaMVoGEeS2WoXr83SnEA" actual="__IwZ_1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/orphanage.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/orphanage.xml
new file mode 100644
index 0000000..4364c0b
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStm/orphanage.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Package xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__IwaMloGEeS2WoXr83SnEA" name="$$" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaM1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwaNFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaNVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaNloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaM1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaOFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaOVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaNloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaOloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaO1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbQloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaPFoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwaPVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaPloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaP1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaQFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaQVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaQloGEeS2WoXr83SnEA" name="Set" superClass="__IwaP1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaQ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaRFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaRVoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwaRloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaR1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaSFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaRVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaSVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaSloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaS1oGEeS2WoXr83SnEA" name="Set" superClass="__IwaSFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaTFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaTVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbV1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaTloGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwaT1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaUFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaUVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaTloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaUloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaU1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaVFoGEeS2WoXr83SnEA" name="Set" superClass="__IwaUVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaVVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaVloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbPVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaV1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwaWFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaWVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaWloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaV1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaW1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaXFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaXVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaWloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaXloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaX1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbR1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwaYFoGEeS2WoXr83SnEA" name="Bag" superClass="__IwaPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaYVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaYloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaY1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwaZFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaZVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaZloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwaY1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaZ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaaFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwaaVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaZloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwaaloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Iwaa1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ_1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwabFoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwabVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwabloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Iwab1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwabFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwacFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwacVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwacloGEeS2WoXr83SnEA" name="Set" superClass="__Iwab1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__Iwac1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwadFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ9VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwadVoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwadloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Iwad1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwaeFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwadVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwaeVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaeloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__Iwae1oGEeS2WoXr83SnEA" name="Set" superClass="__IwaeFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwafFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwafVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ71oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwafloGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__Iwaf1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwagFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__IwagVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__IwafloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwagloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Iwag1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZyFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZx1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwZxloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwahFoGEeS2WoXr83SnEA" name="Set" superClass="__IwagVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__IwahVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwahloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ-loGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__Iwah1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__IwaiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwaiVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXeloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXeVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__IwXeFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__IwYKVoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__IwailoGEeS2WoXr83SnEA" name="Bag" superClass="__Iwah1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__Iwai1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__IwajFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwXOFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwXN1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__IwXNloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__IwZ81oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__IwajVoGEeS2WoXr83SnEA" name="Set" superClass="__IwaP1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__IwajloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__Iwaj1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__IwZgloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__IwZgVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__IwZgFoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__IwbS1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+</flatemofqvt:Package>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/OCL.xml
new file mode 100644
index 0000000..9b0ab7d
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/OCL.xml
@@ -0,0 +1,2988 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__jbf51oGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <nestedPackage xmi:id="__jbf6FoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf6VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbivloGEeS2WoXr83SnEA __jbiwloGEeS2WoXr83SnEA"
+ contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf6loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbitFoGEeS2WoXr83SnEA"
+ contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbis1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf61oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbiuloGEeS2WoXr83SnEA"
+ contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbiuVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf7FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbixloGEeS2WoXr83SnEA"
+ contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf7VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbirVoGEeS2WoXr83SnEA"
+ contextType="__jbiiloGEeS2WoXr83SnEA" resultType="__jbhX1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf7loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjL1oGEeS2WoXr83SnEA __jbjQFoGEeS2WoXr83SnEA __jbjRVoGEeS2WoXr83SnEA __jbjSFoGEeS2WoXr83SnEA __jbjTVoGEeS2WoXr83SnEA __jbjXFoGEeS2WoXr83SnEA __jbjYFoGEeS2WoXr83SnEA __jbjZFoGEeS2WoXr83SnEA"
+ contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf71oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjNloGEeS2WoXr83SnEA"
+ contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjNVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf8FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjPVoGEeS2WoXr83SnEA"
+ contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjPFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf8VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjV1oGEeS2WoXr83SnEA"
+ contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjVloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf8loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbjUVoGEeS2WoXr83SnEA __jbjaFoGEeS2WoXr83SnEA"
+ contextType="__jbizFoGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf81oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkc1oGEeS2WoXr83SnEA __jbkd1oGEeS2WoXr83SnEA"
+ contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf9FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbke1oGEeS2WoXr83SnEA"
+ contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf9VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkYloGEeS2WoXr83SnEA"
+ contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbkKFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf9loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkaVoGEeS2WoXr83SnEA"
+ contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbkaFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf91oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkb1oGEeS2WoXr83SnEA"
+ contextType="__jbkK1oGEeS2WoXr83SnEA" resultType="__jbkbloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkx1oGEeS2WoXr83SnEA __jbky1oGEeS2WoXr83SnEA"
+ contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkz1oGEeS2WoXr83SnEA"
+ contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbktloGEeS2WoXr83SnEA"
+ contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbhMloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf-1oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkvVoGEeS2WoXr83SnEA"
+ contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbkvFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_FoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbkw1oGEeS2WoXr83SnEA"
+ contextType="__jbkgFoGEeS2WoXr83SnEA" resultType="__jbkwloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_VoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblC1oGEeS2WoXr83SnEA __jblD1oGEeS2WoXr83SnEA"
+ contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jbhrFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_loGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblE1oGEeS2WoXr83SnEA"
+ contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbf_1oGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jbk-loGEeS2WoXr83SnEA"
+ contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jbk0VoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbgAFoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblAVoGEeS2WoXr83SnEA"
+ contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jblAFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbgAVoGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblB1oGEeS2WoXr83SnEA"
+ contextType="__jbk1FoGEeS2WoXr83SnEA" resultType="__jblBloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="__jbgAloGEeS2WoXr83SnEA" name="Lambda" superClass="__jbj5loGEeS2WoXr83SnEA" typedElement="__jblKVoGEeS2WoXr83SnEA"
+ contextType="__jblGloGEeS2WoXr83SnEA" resultType="__jbjeloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="__jbgA1oGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="__jbgL1oGEeS2WoXr83SnEA __jbhXloGEeS2WoXr83SnEA __jbheVoGEeS2WoXr83SnEA"
+ superClass="__jbj_FoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__jbgBFoGEeS2WoXr83SnEA" name="first" type="__jbizFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbgBVoGEeS2WoXr83SnEA" name="second" type="__jbjGloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgBloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgMFoGEeS2WoXr83SnEA" typedElement="__jbir1oGEeS2WoXr83SnEA" elementType="__jbis1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgB1oGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgCFoGEeS2WoXr83SnEA" actual="__jbis1oGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgCVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgM1oGEeS2WoXr83SnEA" typedElement="__jbitloGEeS2WoXr83SnEA" elementType="__jbiuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgCloGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgC1oGEeS2WoXr83SnEA" actual="__jbiuVoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgDFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgNloGEeS2WoXr83SnEA" typedElement="__jbilloGEeS2WoXr83SnEA" elementType="__jbimloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgDVoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgDloGEeS2WoXr83SnEA" actual="__jbimloGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgD1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgOVoGEeS2WoXr83SnEA" typedElement="__jbioVoGEeS2WoXr83SnEA" elementType="__jbipFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgEFoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgEVoGEeS2WoXr83SnEA" actual="__jbipFoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgEloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgPFoGEeS2WoXr83SnEA" typedElement="__jbiploGEeS2WoXr83SnEA" elementType="__jbiqVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgE1oGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgFFoGEeS2WoXr83SnEA" actual="__jbiqVoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgFVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgWloGEeS2WoXr83SnEA" typedElement="__jbi2loGEeS2WoXr83SnEA __jbjCFoGEeS2WoXr83SnEA __jbjKloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgFloGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgF1oGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgGFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgXVoGEeS2WoXr83SnEA" typedElement="__jbizVoGEeS2WoXr83SnEA" elementType="__jbiyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgGVoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgGloGEeS2WoXr83SnEA" actual="__jbiyVoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgG1oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgY1oGEeS2WoXr83SnEA" typedElement="__jbjcloGEeS2WoXr83SnEA" elementType="__jbjaloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgHFoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgHVoGEeS2WoXr83SnEA" actual="__jbjaloGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgHloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgZloGEeS2WoXr83SnEA" typedElement="__jbjd1oGEeS2WoXr83SnEA" elementType="__jbjc1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgH1oGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgIFoGEeS2WoXr83SnEA" actual="__jbjc1oGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgIVoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgmVoGEeS2WoXr83SnEA" typedElement="__jbk_FoGEeS2WoXr83SnEA" elementType="__jblAFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgIloGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgI1oGEeS2WoXr83SnEA" actual="__jblAFoGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbgJFoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="__jbih1oGEeS2WoXr83SnEA"
+ superClass="__jbgnFoGEeS2WoXr83SnEA" typedElement="__jblA1oGEeS2WoXr83SnEA" elementType="__jblBloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgJVoGEeS2WoXr83SnEA" signature="__jbiiFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgJloGEeS2WoXr83SnEA" actual="__jblBloGEeS2WoXr83SnEA" formal="__jbiiVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgJ1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbhyloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgKFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgKVoGEeS2WoXr83SnEA" actual="__jbhyloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgKloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiHloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgK1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgLFoGEeS2WoXr83SnEA" actual="__jbiHloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgLVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbgA1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgLloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgL1oGEeS2WoXr83SnEA" actual="__jbgA1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgMFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbis1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgMVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgMloGEeS2WoXr83SnEA" actual="__jbis1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgM1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgNFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgNVoGEeS2WoXr83SnEA" actual="__jbiuVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgNloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbimloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgN1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgOFoGEeS2WoXr83SnEA" actual="__jbimloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgOVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbipFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgOloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgO1oGEeS2WoXr83SnEA" actual="__jbipFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgPFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiqVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgPVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgPloGEeS2WoXr83SnEA" actual="__jbiqVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgP1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbioFoGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgQFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgQVoGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgQloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjMVoGEeS2WoXr83SnEA" elementType="__jbjNVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgQ1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgRFoGEeS2WoXr83SnEA" actual="__jbjNVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgRVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjOFoGEeS2WoXr83SnEA" elementType="__jbjPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgRloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgR1oGEeS2WoXr83SnEA" actual="__jbjPFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgSFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbi7VoGEeS2WoXr83SnEA" elementType="__jbi7FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgSVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgSloGEeS2WoXr83SnEA" actual="__jbi7FoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgS1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbi9FoGEeS2WoXr83SnEA" elementType="__jbi-FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgTFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgTVoGEeS2WoXr83SnEA" actual="__jbi-FoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgTloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjAVoGEeS2WoXr83SnEA" elementType="__jbjAFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgT1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgUFoGEeS2WoXr83SnEA" actual="__jbjAFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgUVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjG1oGEeS2WoXr83SnEA" elementType="__jbjGloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgUloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgU1oGEeS2WoXr83SnEA" actual="__jbjGloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgVFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjHFoGEeS2WoXr83SnEA" elementType="__jbjH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgVVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgVloGEeS2WoXr83SnEA" actual="__jbjH1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgV1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjIVoGEeS2WoXr83SnEA" elementType="__jbjJFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgWFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgWVoGEeS2WoXr83SnEA" actual="__jbjJFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgWloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgW1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgXFoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgXVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbiyVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgXloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgX1oGEeS2WoXr83SnEA" actual="__jbiyVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgYFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgYVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgYloGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgY1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjaloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgZFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgZVoGEeS2WoXr83SnEA" actual="__jbjaloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgZloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjc1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgZ1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgaFoGEeS2WoXr83SnEA" actual="__jbjc1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgaVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbilVoGEeS2WoXr83SnEA __jbi81oGEeS2WoXr83SnEA __jbkPloGEeS2WoXr83SnEA __jbkkVoGEeS2WoXr83SnEA __jbk4loGEeS2WoXr83SnEA"
+ elementType="__jbjeloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgaloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbga1oGEeS2WoXr83SnEA" actual="__jbjeloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgbFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbjuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgbVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgbloGEeS2WoXr83SnEA" actual="__jbjuVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgb1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbj8loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgcFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgcVoGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgcloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkHVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgc1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgdFoGEeS2WoXr83SnEA" actual="__jbkHVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgdVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgdloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgd1oGEeS2WoXr83SnEA" actual="__jbkaFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgeFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkbloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgeVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgeloGEeS2WoXr83SnEA" actual="__jbkbloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbge1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgfFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgfVoGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgfloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgf1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbggFoGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbggVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbggloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgg1oGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbghFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkK1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbghVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbghloGEeS2WoXr83SnEA" actual="__jbkK1oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgh1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkvFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgiFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgiVoGEeS2WoXr83SnEA" actual="__jbkvFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgiloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkwloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgi1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgjFoGEeS2WoXr83SnEA" actual="__jbkwloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgjVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbklloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgjloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgj1oGEeS2WoXr83SnEA" actual="__jbklloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkqVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgkVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgkloGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkrloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbglFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbglVoGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbglloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgl1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgmFoGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jblAFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgmloGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgm1oGEeS2WoXr83SnEA" actual="__jblAFoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgnFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jblBloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgnVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgnloGEeS2WoXr83SnEA" actual="__jblBloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbk51oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgoFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgoVoGEeS2WoXr83SnEA" actual="__jbk51oGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgoloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbk8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgo1oGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgpFoGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgpVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" elementType="__jbk9loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgploGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgp1oGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgqFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbk7VoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgqVoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgqloGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbgq1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="__jbiyVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jblIFoGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgrFoGEeS2WoXr83SnEA" signature="__jbiyloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgrVoGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbiy1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgrloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbihloGEeS2WoXr83SnEA" instanceType="__jbihVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgr1oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgsFoGEeS2WoXr83SnEA" actual="__jbihVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgsVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbipVoGEeS2WoXr83SnEA" instanceType="__jbipFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgsloGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgs1oGEeS2WoXr83SnEA" actual="__jbipFoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgtFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbiqloGEeS2WoXr83SnEA" instanceType="__jbiqVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgtVoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgtloGEeS2WoXr83SnEA" actual="__jbiqVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgt1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjIFoGEeS2WoXr83SnEA" instanceType="__jbjH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbguFoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbguVoGEeS2WoXr83SnEA" actual="__jbjH1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbguloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjJVoGEeS2WoXr83SnEA" instanceType="__jbjJFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgu1oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgvFoGEeS2WoXr83SnEA" actual="__jbjJFoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgvVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjiVoGEeS2WoXr83SnEA" instanceType="__jbjiFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgvloGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgv1oGEeS2WoXr83SnEA" actual="__jbjiFoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgwFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjlFoGEeS2WoXr83SnEA" instanceType="__jbjk1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgwVoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgwloGEeS2WoXr83SnEA" actual="__jbjk1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgw1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjnFoGEeS2WoXr83SnEA" instanceType="__jbjm1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgxFoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgxVoGEeS2WoXr83SnEA" actual="__jbjm1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgxloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbj1FoGEeS2WoXr83SnEA" instanceType="__jbj01oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgx1oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgyFoGEeS2WoXr83SnEA" actual="__jbj01oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgyVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbj2loGEeS2WoXr83SnEA" instanceType="__jbj2VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgyloGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgy1oGEeS2WoXr83SnEA" actual="__jbj2VoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgzFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbj31oGEeS2WoXr83SnEA" instanceType="__jbj3loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbgzVoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbgzloGEeS2WoXr83SnEA" actual="__jbj3loGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbgz1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" instanceType="__jbjwVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg0FoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg0VoGEeS2WoXr83SnEA" actual="__jbjwVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg0loGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbjpFoGEeS2WoXr83SnEA __jbj4VoGEeS2WoXr83SnEA" instanceType="__jbj8loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg01oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg1FoGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg1VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" instanceType="__jbkB1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg1loGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg11oGEeS2WoXr83SnEA" actual="__jbkB1oGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg2FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkVloGEeS2WoXr83SnEA" instanceType="__jbkVVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg2VoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg2loGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg21oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkW1oGEeS2WoXr83SnEA" instanceType="__jbkWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg3FoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg3VoGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg3loGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkqloGEeS2WoXr83SnEA" instanceType="__jbkqVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg31oGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg4FoGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg4VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbkr1oGEeS2WoXr83SnEA" instanceType="__jbkrloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg4loGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg41oGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg5FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbk8loGEeS2WoXr83SnEA" instanceType="__jbk8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg5VoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg5loGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbg51oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="__jbjc1oGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" typedElement="__jbk91oGEeS2WoXr83SnEA" instanceType="__jbk9loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg6FoGEeS2WoXr83SnEA" signature="__jbjdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg6VoGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jbjdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg6loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgJ1oGEeS2WoXr83SnEA" elementType="__jbhyloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg61oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg7FoGEeS2WoXr83SnEA" actual="__jbhyloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg7VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgKloGEeS2WoXr83SnEA" elementType="__jbiHloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg7loGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg71oGEeS2WoXr83SnEA" actual="__jbiHloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg8FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgP1oGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg8VoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg8loGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg81oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgWloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg9FoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg9VoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg9loGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgYFoGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg91oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg-FoGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg-VoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgdVoGEeS2WoXr83SnEA" elementType="__jbkaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg-loGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg-1oGEeS2WoXr83SnEA" actual="__jbkaFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg_FoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgeFoGEeS2WoXr83SnEA" elementType="__jbkbloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbg_VoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbg_loGEeS2WoXr83SnEA" actual="__jbkbloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbg_1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbge1oGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhAFoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhAVoGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhAloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgfloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhA1oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhBFoGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhBVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbggVoGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhBloGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhB1oGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhCFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbghFoGEeS2WoXr83SnEA" typedElement="__jbkOFoGEeS2WoXr83SnEA __jbkT1oGEeS2WoXr83SnEA" elementType="__jbkK1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhCVoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhCloGEeS2WoXr83SnEA" actual="__jbkK1oGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhC1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgh1oGEeS2WoXr83SnEA" elementType="__jbkvFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhDFoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhDVoGEeS2WoXr83SnEA" actual="__jbkvFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhDloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgiloGEeS2WoXr83SnEA" elementType="__jbkwloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhD1oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhEFoGEeS2WoXr83SnEA" actual="__jbkwloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhEVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgjVoGEeS2WoXr83SnEA" elementType="__jbklloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhEloGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhE1oGEeS2WoXr83SnEA" actual="__jbklloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhFFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgkFoGEeS2WoXr83SnEA" elementType="__jbkqVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhFVoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhFloGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhF1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgk1oGEeS2WoXr83SnEA" elementType="__jbkrloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhGFoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhGVoGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhGloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbglloGEeS2WoXr83SnEA" typedElement="__jbki1oGEeS2WoXr83SnEA __jbko1oGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhG1oGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhHFoGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhHVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgqFoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhHloGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhH1oGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhIFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="__jbkGloGEeS2WoXr83SnEA"
+ superClass="__jbgq1oGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhIVoGEeS2WoXr83SnEA" signature="__jbkG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhIloGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbkHFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhI1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbg81oGEeS2WoXr83SnEA __jbhfVoGEeS2WoXr83SnEA" typedElement="__jbi3FoGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhJFoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhJVoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhJloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbg9loGEeS2WoXr83SnEA __jbhgFoGEeS2WoXr83SnEA" typedElement="__jbjbFoGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhJ1oGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhKFoGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhKVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbg_1oGEeS2WoXr83SnEA __jbhjFoGEeS2WoXr83SnEA" typedElement="__jbkP1oGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhKloGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhK1oGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhLFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbhAloGEeS2WoXr83SnEA __jbhj1oGEeS2WoXr83SnEA" typedElement="__jbkUloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhLVoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhLloGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhL1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbhBVoGEeS2WoXr83SnEA __jbhkloGEeS2WoXr83SnEA" typedElement="__jbkV1oGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhMFoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhMVoGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhMloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbhGloGEeS2WoXr83SnEA __jbhmFoGEeS2WoXr83SnEA" typedElement="__jbktFoGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhM1oGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhNFoGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhNVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbhHVoGEeS2WoXr83SnEA __jbhpFoGEeS2WoXr83SnEA" typedElement="__jblEVoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhNloGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhN1oGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbhOFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="__jbkKFoGEeS2WoXr83SnEA"
+ superClass="__jbhIFoGEeS2WoXr83SnEA __jbhp1oGEeS2WoXr83SnEA" typedElement="__jblJ1oGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhOVoGEeS2WoXr83SnEA" signature="__jbkKVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhOloGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbkKloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhO1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbg6loGEeS2WoXr83SnEA" elementType="__jbhyloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhPFoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhPVoGEeS2WoXr83SnEA" actual="__jbhyloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhPloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbg7VoGEeS2WoXr83SnEA" typedElement="__jbiNVoGEeS2WoXr83SnEA __jbidVoGEeS2WoXr83SnEA __jbid1oGEeS2WoXr83SnEA __jbieloGEeS2WoXr83SnEA"
+ elementType="__jbiHloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhP1oGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhQFoGEeS2WoXr83SnEA" actual="__jbiHloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhQVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbg8FoGEeS2WoXr83SnEA" typedElement="__jbixFoGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhQloGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhQ1oGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhRFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbg81oGEeS2WoXr83SnEA" typedElement="__jbi3loGEeS2WoXr83SnEA __jbjZloGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhRVoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhRloGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhR1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbg-VoGEeS2WoXr83SnEA" typedElement="__jbkZFoGEeS2WoXr83SnEA" elementType="__jbkaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhSFoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhSVoGEeS2WoXr83SnEA" actual="__jbkaFoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhSloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbg_FoGEeS2WoXr83SnEA" typedElement="__jbka1oGEeS2WoXr83SnEA" elementType="__jbkbloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhS1oGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhTFoGEeS2WoXr83SnEA" actual="__jbkbloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhTVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbhC1oGEeS2WoXr83SnEA" typedElement="__jbkuFoGEeS2WoXr83SnEA" elementType="__jbkvFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhTloGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhT1oGEeS2WoXr83SnEA" actual="__jbkvFoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhUFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbhDloGEeS2WoXr83SnEA" typedElement="__jbkv1oGEeS2WoXr83SnEA" elementType="__jbkwloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhUVoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhUloGEeS2WoXr83SnEA" actual="__jbkwloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhU1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbhEVoGEeS2WoXr83SnEA" typedElement="__jbkkloGEeS2WoXr83SnEA" elementType="__jbklloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhVFoGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhVVoGEeS2WoXr83SnEA" actual="__jbklloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhVloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbhFFoGEeS2WoXr83SnEA" typedElement="__jbkploGEeS2WoXr83SnEA" elementType="__jbkqVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhV1oGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhWFoGEeS2WoXr83SnEA" actual="__jbkqVoGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbhWVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="__jbkfVoGEeS2WoXr83SnEA"
+ superClass="__jbhF1oGEeS2WoXr83SnEA" typedElement="__jbkq1oGEeS2WoXr83SnEA" elementType="__jbkrloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhWloGEeS2WoXr83SnEA" signature="__jbkfloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhW1oGEeS2WoXr83SnEA" actual="__jbkrloGEeS2WoXr83SnEA" formal="__jbkf1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhXFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhd1oGEeS2WoXr83SnEA" typedElement="__jbjFloGEeS2WoXr83SnEA" elementType="__jbgA1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhXVoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhXloGEeS2WoXr83SnEA" actual="__jbgA1oGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhX1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbheloGEeS2WoXr83SnEA" typedElement="__jbiq1oGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhYFoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhYVoGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhYloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhfVoGEeS2WoXr83SnEA" typedElement="__jbi4FoGEeS2WoXr83SnEA __jbjC1oGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhY1oGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhZFoGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhZVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhhloGEeS2WoXr83SnEA" typedElement="__jbjv1oGEeS2WoXr83SnEA" elementType="__jbjuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhZloGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhZ1oGEeS2WoXr83SnEA" actual="__jbjuVoGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhaFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhiVoGEeS2WoXr83SnEA" typedElement="__jbhs1oGEeS2WoXr83SnEA __jbjbloGEeS2WoXr83SnEA __jbjgloGEeS2WoXr83SnEA __jbju1oGEeS2WoXr83SnEA __jbjyVoGEeS2WoXr83SnEA __jbjz1oGEeS2WoXr83SnEA __jbkDloGEeS2WoXr83SnEA"
+ elementType="__jbj8loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhaVoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhaloGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbha1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhm1oGEeS2WoXr83SnEA" typedElement="__jbk41oGEeS2WoXr83SnEA" elementType="__jbk51oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhbFoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhbVoGEeS2WoXr83SnEA" actual="__jbk51oGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhbloGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhnloGEeS2WoXr83SnEA" typedElement="__jbk7loGEeS2WoXr83SnEA" elementType="__jbk8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhb1oGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhcFoGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhcVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhoVoGEeS2WoXr83SnEA" typedElement="__jbk81oGEeS2WoXr83SnEA" elementType="__jbk9loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhcloGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhc1oGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbhdFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="__jbk0VoGEeS2WoXr83SnEA"
+ superClass="__jbhp1oGEeS2WoXr83SnEA" typedElement="__jblHloGEeS2WoXr83SnEA __jblIVoGEeS2WoXr83SnEA __jblJFoGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhdVoGEeS2WoXr83SnEA" signature="__jbk0loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhdloGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jbk01oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhd1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgLVoGEeS2WoXr83SnEA" elementType="__jbgA1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbheFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbheVoGEeS2WoXr83SnEA" actual="__jbgA1oGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbheloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgP1oGEeS2WoXr83SnEA" elementType="__jbiiloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhe1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhfFoGEeS2WoXr83SnEA" actual="__jbiiloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhfVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgWloGEeS2WoXr83SnEA" typedElement="__jbjDVoGEeS2WoXr83SnEA" elementType="__jbizFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhfloGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhf1oGEeS2WoXr83SnEA" actual="__jbizFoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhgFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgYFoGEeS2WoXr83SnEA" elementType="__jbjcFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhgVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhgloGEeS2WoXr83SnEA" actual="__jbjcFoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhg1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgaVoGEeS2WoXr83SnEA" typedElement="__jbkLloGEeS2WoXr83SnEA __jbk11oGEeS2WoXr83SnEA __jblHVoGEeS2WoXr83SnEA __jblI1oGEeS2WoXr83SnEA"
+ elementType="__jbjeloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhhFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhhVoGEeS2WoXr83SnEA" actual="__jbjeloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhhloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgbFoGEeS2WoXr83SnEA" elementType="__jbjuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhh1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhiFoGEeS2WoXr83SnEA" actual="__jbjuVoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhiVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgb1oGEeS2WoXr83SnEA" elementType="__jbj8loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhiloGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhi1oGEeS2WoXr83SnEA" actual="__jbj8loGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhjFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbge1oGEeS2WoXr83SnEA" elementType="__jbkQloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhjVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhjloGEeS2WoXr83SnEA" actual="__jbkQloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhj1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgfloGEeS2WoXr83SnEA" elementType="__jbkVVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhkFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhkVoGEeS2WoXr83SnEA" actual="__jbkVVoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhkloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbggVoGEeS2WoXr83SnEA" elementType="__jbkWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhk1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhlFoGEeS2WoXr83SnEA" actual="__jbkWloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhlVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbghFoGEeS2WoXr83SnEA" elementType="__jbkK1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhlloGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhl1oGEeS2WoXr83SnEA" actual="__jbkK1oGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhmFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbglloGEeS2WoXr83SnEA" elementType="__jbkgFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhmVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhmloGEeS2WoXr83SnEA" actual="__jbkgFoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhm1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgn1oGEeS2WoXr83SnEA" elementType="__jbk51oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhnFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhnVoGEeS2WoXr83SnEA" actual="__jbk51oGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhnloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgoloGEeS2WoXr83SnEA" elementType="__jbk8VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhn1oGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhoFoGEeS2WoXr83SnEA" actual="__jbk8VoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhoVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgpVoGEeS2WoXr83SnEA" elementType="__jbk9loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbholoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbho1oGEeS2WoXr83SnEA" actual="__jbk9loGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhpFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgqFoGEeS2WoXr83SnEA" elementType="__jbk1FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhpVoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhploGEeS2WoXr83SnEA" actual="__jbk1FoGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbhp1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="__jblF1oGEeS2WoXr83SnEA"
+ superClass="__jbgq1oGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbhqFoGEeS2WoXr83SnEA" signature="__jblGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbhqVoGEeS2WoXr83SnEA" actual="__jblGloGEeS2WoXr83SnEA" formal="__jblGVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="__jbhqloGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <ownedComment xmi:id="__jbhq1oGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.
This sub clause contains all standard types defined within OCL, including all the operations defined on those types.
For each operation the signature and a description of the semantics is given.
Within the description, the reserved word ‘result’ is used to refer to the value that results from evaluating the operation.
In several places, post conditions are used to describe properties of the result.
When there is more than one postcondition, all postconditions must be true.
A similar thing is true for multiple preconditions.
If these are used, the operation is only defined if all preconditions evaluate to oclText[true].

heading:1[Introduction]

The structure, syntax, and semantics of the OCL is defined in Clauses 8 (“Abstract Syntax”), 9 (“Concrete Syntax”),
and 10 (“Semantics Described using UML”).
This sub clause adds another part to the OCL definition: a library of predefined types and operations.
Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,
where the language definition and the standard libraries are both mandatory parts of the complete language definition.

The OCL standard library defines a number of types.
It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.
These are familiar from many other languages. The second part of the standard library consists of the collection types.
They are Bag, Set, Sequence, and Collection where Collection is an abstract type.
Note that all types defined in the OCL standard library are instances of an abstract syntax class.
The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.

Next to definitions of types the OCL standard library defines a number of template expressions.
Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.
For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.

The Standard Library may be extended with new types, new operations and new iterators.
In particular new operations can be defined for collections.

Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted
in an appropriate fashion.
A locale is defined as a concatenation of up to three character sequences separated by underscores,
with the first sequence identifying the language and the second sequence identifying the country.
The third sequence is empty but may encode an implementation-specific variant.
Trailing empty strings and separators may be omitted.

The character sequences for languages are defined by ISO 639.

The character sequences for countries are defined by ISO 3166.

‘fr_CA’ therefore identifies the locale for the French language in the Canada country.

Comparison of strings and consequently the collation order of Collection::sortedBy()
conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.

The locale is ‘en_us’ by default but may be configured by a property constraint on OclAny::oclLocale.

The prevailing locale is defined by the prevailing value of oclLocale within the current environment;
it may therefore be changed temporarily by using a Let expression.
let oclLocale : String = ‘fr_CA’ in aString.toUpperCase()

heading:1[Iterators]

This sub clause defines the standard OCL iterator expressions.
In the abstract syntax these are all instances of IteratorExp.
These iterator expressions always have a collection expression as their source,
as is defined in the well-formedness rules in Clause 8 (“Abstract Syntax”).
The defined iterator expressions are shown per source collection type.
The semantics of each iterator expression is defined through a mapping from the iterator to the ‘iterate’ construct.
This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.

In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,
and the righthand side of the equals sign is the equivalent as an IterateExp.
The names source, body, and iterator refer to the role names in the abstract syntax:

source	The source expression of the IteratorExp.

body	The body expression of the IteratorExp.

iterator	The iterator variable of the IteratorExp.

result	The result variable of the IterateExp.

heading:2[Extending the Standard Library with Iterator Expressions]

It is possible to add new iterator expressions in the standard library.
If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,
in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbhrFoGEeS2WoXr83SnEA" name="Boolean" superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__jbhrVoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhrloGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__jbhr1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhsFoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhsVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__jbhsloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhs1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+ <ownedComment xmi:id="__jbhtFoGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhtVoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isInvalidating="true" isValidating="true" precedence="__jblMVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhtloGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[true]."/>
+ <bodyExpression xmi:id="__jbht1oGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = false then false
+ else self
+ endif endif
+ else if self = false then false
+ else if b.oclIsInvalid() then b
+ else if b = false then false
+ else if self = null then null
+ else if b = null then null
+ else true
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__jbhuFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhuVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isInvalidating="true" isValidating="true" precedence="__jblNFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhuloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="__jbhu1oGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = false then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then b
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__jbhvFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhvVoGEeS2WoXr83SnEA" name="not" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+ precedence="__jblLFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhvloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].
oclText[false] if oclText[self] is oclText[true].
oclText[null] if oclText[self] is oclText[null].
Otherwise oclText[invalid]."/>
+ <bodyExpression xmi:id="__jbhv1oGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if self = null then null
+ else self = false
+ endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhwFoGEeS2WoXr83SnEA" name="or" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+ isInvalidating="true" isValidating="true" precedence="__jblMloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhwVoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="__jbhwloGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = true then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then null
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__jbhw1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhxFoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__jbhxVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhxloGEeS2WoXr83SnEA" name="xor" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+ precedence="__jblM1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhx1oGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].
oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null]."/>
+ <bodyExpression xmi:id="__jbhyFoGEeS2WoXr83SnEA" type="__jbhrFoGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if b.oclIsInvalid() then b
+ else if self = null then null
+ else if b = null then null
+ else self <> b
+ endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="__jbhyVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhrVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhsFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhtVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbht1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhuFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhu1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhvFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhvVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhv1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhwFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhwloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhw1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhxloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#__jbhyFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbhyVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbh-1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbh_loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiAVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiB1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiCloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiIloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiJVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiKFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiKloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiLFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiL1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiPVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiQFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiSVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiVloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiZVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbifVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbii1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbijVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi1FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi11oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi5VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi6FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi-VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbi_FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjDloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjFFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjP1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjQ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjR1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjS1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjT1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#__jbjWloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjfFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjf1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjiloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjjVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjj1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjlVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjl1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjnVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjqloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjrVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjsFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjs1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjw1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjxloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjy1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbjzFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjzVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbjzloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj1VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj1loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj21oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj4FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj4loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbj41oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj6loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj7FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj7loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj_loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkAFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkCVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkC1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkEFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbkEVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkEloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbkE1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkFFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkFVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkFloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbkF1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkL1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkMVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkgVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkg1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbk2FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbk2loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfa1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfkFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="SeqToStmc.xml#__jbfn1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfoFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfo1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbfwloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="SeqToStmc.xml#__jbf11oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbhyloGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="__jbgKVoGEeS2WoXr83SnEA __jbg7FoGEeS2WoXr83SnEA __jbhPVoGEeS2WoXr83SnEA"
+ superClass="__jbh7FoGEeS2WoXr83SnEA" typedElement="__jbhy1oGEeS2WoXr83SnEA __jbhzloGEeS2WoXr83SnEA __jbh0VoGEeS2WoXr83SnEA __jbh01oGEeS2WoXr83SnEA __jbh2VoGEeS2WoXr83SnEA __jbh21oGEeS2WoXr83SnEA __jbh3loGEeS2WoXr83SnEA __jbh4FoGEeS2WoXr83SnEA __jbh4VoGEeS2WoXr83SnEA __jbh5FoGEeS2WoXr83SnEA __jbh51oGEeS2WoXr83SnEA __jbh6VoGEeS2WoXr83SnEA __jbiD1oGEeS2WoXr83SnEA __jbiEloGEeS2WoXr83SnEA __jbiGloGEeS2WoXr83SnEA __jbiNFoGEeS2WoXr83SnEA __jbiN1oGEeS2WoXr83SnEA __jbiQ1oGEeS2WoXr83SnEA __jbiRloGEeS2WoXr83SnEA __jbiVFoGEeS2WoXr83SnEA __jbiY1oGEeS2WoXr83SnEA __jbiZFoGEeS2WoXr83SnEA __jbiZ1oGEeS2WoXr83SnEA __jbi0FoGEeS2WoXr83SnEA __jbi0loGEeS2WoXr83SnEA __jbi4loGEeS2WoXr83SnEA __jbjJloGEeS2WoXr83SnEA __jbjtloGEeS2WoXr83SnEA __jbkIFoGEeS2WoXr83SnEA __jbkI1oGEeS2WoXr83SnEA __jbkSFoGEeS2WoXr83SnEA __jbkXloGEeS2WoXr83SnEA __jbkX1oGEeS2WoXr83SnEA __jbknFoGEeS2WoXr83SnEA __jbksloGEeS2WoXr83SnEA __jbks1oGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__jbhy1oGEeS2WoXr83SnEA" name="*" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="__jblLVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhzFoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+ <ownedParameter xmi:id="__jbhzVoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbhzloGEeS2WoXr83SnEA" name="+" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbhz1oGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+ <ownedParameter xmi:id="__jbh0FoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh0VoGEeS2WoXr83SnEA" name="-" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="__jblLFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh0loGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh01oGEeS2WoXr83SnEA" name="-" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh1FoGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+ <ownedParameter xmi:id="__jbh1VoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh1loGEeS2WoXr83SnEA" name="/" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="__jblLVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh11oGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.
Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="__jbh2FoGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh2VoGEeS2WoXr83SnEA" name="abs" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="__jbh2loGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh21oGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="__jbh3FoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__jbh3VoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh3loGEeS2WoXr83SnEA" name="div" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+ <ownedComment xmi:id="__jbh31oGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+ <ownedParameter xmi:id="__jbh4FoGEeS2WoXr83SnEA" name="i" type="__jbhyloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh4VoGEeS2WoXr83SnEA" name="max" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="__jbh4loGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+ <ownedParameter xmi:id="__jbh41oGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh5FoGEeS2WoXr83SnEA" name="min" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="__jbh5VoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+ <ownedParameter xmi:id="__jbh5loGEeS2WoXr83SnEA" name="i" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh51oGEeS2WoXr83SnEA" name="mod" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+ <ownedComment xmi:id="__jbh6FoGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+ <ownedParameter xmi:id="__jbh6VoGEeS2WoXr83SnEA" name="i" type="__jbhyloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh6loGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__jbh61oGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbh7FoGEeS2WoXr83SnEA" name="Real" superClass="__jbjqFoGEeS2WoXr83SnEA __jbj9VoGEeS2WoXr83SnEA"
+ typedElement="__jbh1loGEeS2WoXr83SnEA __jbh7VoGEeS2WoXr83SnEA __jbh8FoGEeS2WoXr83SnEA __jbh81oGEeS2WoXr83SnEA __jbh9VoGEeS2WoXr83SnEA __jbh-FoGEeS2WoXr83SnEA __jbiDVoGEeS2WoXr83SnEA __jbiFFoGEeS2WoXr83SnEA __jbiF1oGEeS2WoXr83SnEA __jbibVoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__jbh7VoGEeS2WoXr83SnEA" name="*" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="__jblLVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh7loGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+ <ownedParameter xmi:id="__jbh71oGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh8FoGEeS2WoXr83SnEA" name="+" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh8VoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+ <ownedParameter xmi:id="__jbh8loGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh81oGEeS2WoXr83SnEA" name="-" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="__jblLFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh9FoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh9VoGEeS2WoXr83SnEA" name="-" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh9loGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+ <ownedParameter xmi:id="__jbh91oGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh-FoGEeS2WoXr83SnEA" name="/" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="__jblLVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh-VoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="__jbh-loGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh-1oGEeS2WoXr83SnEA" name="<" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh_FoGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+ <ownedParameter xmi:id="__jbh_VoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbh_loGEeS2WoXr83SnEA" name="<=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbh_1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+ <ownedParameter xmi:id="__jbiAFoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiAVoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiAloGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__jbiA1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiBFoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiBVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__jbiBloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiB1oGEeS2WoXr83SnEA" name=">" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiCFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+ <ownedParameter xmi:id="__jbiCVoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiCloGEeS2WoXr83SnEA" name=">=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiC1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+ <ownedParameter xmi:id="__jbiDFoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiDVoGEeS2WoXr83SnEA" name="abs" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="__jbiDloGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiD1oGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="__jbiEFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__jbiEVoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiEloGEeS2WoXr83SnEA" name="floor" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+ <ownedComment xmi:id="__jbiE1oGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiFFoGEeS2WoXr83SnEA" name="max" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="__jbiFVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+ <ownedParameter xmi:id="__jbiFloGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiF1oGEeS2WoXr83SnEA" name="min" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="__jbiGFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+ <ownedParameter xmi:id="__jbiGVoGEeS2WoXr83SnEA" name="r" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiGloGEeS2WoXr83SnEA" name="round" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+ <ownedComment xmi:id="__jbiG1oGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiHFoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__jbiHVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbiHloGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="__jbgLFoGEeS2WoXr83SnEA __jbg71oGEeS2WoXr83SnEA __jbhQFoGEeS2WoXr83SnEA"
+ superClass="__jbjqFoGEeS2WoXr83SnEA __jbj9VoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__jbiH1oGEeS2WoXr83SnEA" name="+" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiIFoGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="__jbiIVoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiIloGEeS2WoXr83SnEA" name="<" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiI1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__jbiJFoGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiJVoGEeS2WoXr83SnEA" name="<=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiJloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__jbiJ1oGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiKFoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbiKVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiKloGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbiK1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiLFoGEeS2WoXr83SnEA" name=">" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiLVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__jbiLloGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiL1oGEeS2WoXr83SnEA" name=">=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiMFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="__jbiMVoGEeS2WoXr83SnEA" name="s" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiMloGEeS2WoXr83SnEA" name="at" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbiM1oGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+ <ownedParameter xmi:id="__jbiNFoGEeS2WoXr83SnEA" name="i" type="__jbhyloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiNVoGEeS2WoXr83SnEA" name="characters" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+ <ownedComment xmi:id="__jbiNloGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiN1oGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+ <ownedComment xmi:id="__jbiOFoGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="__jbiOVoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiOloGEeS2WoXr83SnEA" name="concat" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+ <ownedComment xmi:id="__jbiO1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="__jbiPFoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiPVoGEeS2WoXr83SnEA" name="endsWith" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+ <ownedComment xmi:id="__jbiPloGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.
Every string ends with the empty string."/>
+ <ownedParameter xmi:id="__jbiP1oGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiQFoGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+ <ownedComment xmi:id="__jbiQVoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+ <ownedParameter xmi:id="__jbiQloGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiQ1oGEeS2WoXr83SnEA" name="indexOf" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+ <ownedComment xmi:id="__jbiRFoGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="__jbiRVoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiRloGEeS2WoXr83SnEA" name="lastIndexOf" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+ <ownedComment xmi:id="__jbiR1oGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="__jbiSFoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiSVoGEeS2WoXr83SnEA" name="matches" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+ <ownedComment xmi:id="__jbiSloGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+ <ownedParameter xmi:id="__jbiS1oGEeS2WoXr83SnEA" name="regex" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiTFoGEeS2WoXr83SnEA" name="replaceAll" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbiTVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+ <ownedParameter xmi:id="__jbiTloGEeS2WoXr83SnEA" name="regex" type="__jbiHloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbiT1oGEeS2WoXr83SnEA" name="replacement" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiUFoGEeS2WoXr83SnEA" name="replaceFirst" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbiUVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+ <ownedParameter xmi:id="__jbiUloGEeS2WoXr83SnEA" name="regex" type="__jbiHloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbiU1oGEeS2WoXr83SnEA" name="replacement" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiVFoGEeS2WoXr83SnEA" name="size" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+ <ownedComment xmi:id="__jbiVVoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiVloGEeS2WoXr83SnEA" name="startsWith" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+ <ownedComment xmi:id="__jbiV1oGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.
Every string starts with the empty string."/>
+ <ownedParameter xmi:id="__jbiWFoGEeS2WoXr83SnEA" name="s" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiWVoGEeS2WoXr83SnEA" name="substituteAll" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+ <ownedComment xmi:id="__jbiWloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+ <ownedParameter xmi:id="__jbiW1oGEeS2WoXr83SnEA" name="oldSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbiXFoGEeS2WoXr83SnEA" name="newSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiXVoGEeS2WoXr83SnEA" name="substituteFirst" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+ <ownedComment xmi:id="__jbiXloGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.
Returns invalid if there is no first occurrence."/>
+ <ownedParameter xmi:id="__jbiX1oGEeS2WoXr83SnEA" name="oldSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbiYFoGEeS2WoXr83SnEA" name="newSubstring" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiYVoGEeS2WoXr83SnEA" name="substring" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbiYloGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+ <ownedParameter xmi:id="__jbiY1oGEeS2WoXr83SnEA" name="lower" type="__jbhyloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbiZFoGEeS2WoXr83SnEA" name="upper" type="__jbhyloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiZVoGEeS2WoXr83SnEA" name="toBoolean" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbiZloGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiZ1oGEeS2WoXr83SnEA" name="toInteger" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbiaFoGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiaVoGEeS2WoXr83SnEA" name="toLower" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="__jbialoGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbia1oGEeS2WoXr83SnEA" name="toLowerCase" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="__jbibFoGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbibVoGEeS2WoXr83SnEA" name="toReal" type="__jbh7FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbibloGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbib1oGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__jbicFoGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbicVoGEeS2WoXr83SnEA" name="toUpper" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="__jbicloGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbic1oGEeS2WoXr83SnEA" name="toUpperCase" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="__jbidFoGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbidVoGEeS2WoXr83SnEA" name="tokenize" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__jbidloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.
The delimiters are omitted from the return."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbid1oGEeS2WoXr83SnEA" name="tokenize" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__jbieFoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+ <ownedParameter xmi:id="__jbieVoGEeS2WoXr83SnEA" name="delimiters" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbieloGEeS2WoXr83SnEA" name="tokenize" type="__jbhPloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="__jbie1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is
true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+ <ownedParameter xmi:id="__jbifFoGEeS2WoXr83SnEA" name="delimiters" type="__jbiHloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbifVoGEeS2WoXr83SnEA" name="returnDelimiters" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbifloGEeS2WoXr83SnEA" name="trim" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+ <ownedComment xmi:id="__jbif1oGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbhxFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbh6loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiHFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiH1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiIVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiMloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiOloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiPFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiP1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiQloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiRVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiSFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiS1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiTFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiTloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiT1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiUFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiUloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiU1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiWFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiWVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiW1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiXFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiXVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiX1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbiYFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiYVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbiaVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbia1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbib1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbicVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbic1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbieVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbifFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbifloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#__jbjo1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbjploGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbj5FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#__jbkGFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfW1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfYloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfY1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfdloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfgVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfhFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfrFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbftVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfuFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbluloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jblwloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jblxloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbly1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbl0loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbl4loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="SeqMM.xml#__jbl5loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbe81oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbe9loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbe_loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfAVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfCFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfDFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfFVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="StmcMM.xml#__jbfFloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="__jbigFoGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="__jbhyloGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="__jbigVoGEeS2WoXr83SnEA" name="oclAsType" type="__jbihVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+ <ownedComment xmi:id="__jbigloGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to
Real or Integer, but the e[unlimited] value may not.
Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+ <ownedTemplateSignature xmi:id="__jbig1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbihFoGEeS2WoXr83SnEA" parameteredElement="__jbihVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbihVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbihFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgsFoGEeS2WoXr83SnEA" typedElement="__jbigVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbihloGEeS2WoXr83SnEA" name="type" type="__jbgrloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbih1oGEeS2WoXr83SnEA" name="Bag" superClass="__jbgP1oGEeS2WoXr83SnEA" typedElement="__jbikFoGEeS2WoXr83SnEA __jbik1oGEeS2WoXr83SnEA __jbim1oGEeS2WoXr83SnEA __jbinloGEeS2WoXr83SnEA __jbivFoGEeS2WoXr83SnEA __jbiwFoGEeS2WoXr83SnEA"
+ elementType="__jbiiloGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jbiiFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiiVoGEeS2WoXr83SnEA" parameteredElement="__jbiiloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbiiloGEeS2WoXr83SnEA" name="T" templateParameter="__jbiiVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgQVoGEeS2WoXr83SnEA __jbg8loGEeS2WoXr83SnEA __jbhQ1oGEeS2WoXr83SnEA __jbhYVoGEeS2WoXr83SnEA __jbhfFoGEeS2WoXr83SnEA"
+ typedElement="__jbinVoGEeS2WoXr83SnEA __jbirloGEeS2WoXr83SnEA __jbitVoGEeS2WoXr83SnEA __jbiu1oGEeS2WoXr83SnEA __jbiv1oGEeS2WoXr83SnEA __jbiw1oGEeS2WoXr83SnEA __jbix1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbld1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbleloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblfVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblsFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgCFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgC1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgDloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgEVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgFFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgF1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgGloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgHVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgIFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgI1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgJloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbl7FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbl71oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbl8loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfHFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__jbldloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jbleVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblfFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblr1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgB1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgCloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgDVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgEFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgE1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgFloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgGVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgHFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgH1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgIloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgJVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbl61oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbl7loGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbl8VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfG1oGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__jbii1oGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbijFoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbijVoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbijloGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+ <ownedParameter xmi:id="__jbij1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbikFoGEeS2WoXr83SnEA" name="excluding" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__jbikVoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+ <ownedParameter xmi:id="__jbikloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbik1oGEeS2WoXr83SnEA" name="excludingAll" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__jbilFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__jbilVoGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbilloGEeS2WoXr83SnEA" name="flatten" type="__jbgDFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__jbil1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].
If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__jbimFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbimVoGEeS2WoXr83SnEA" parameteredElement="__jbimloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbimloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbimVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgDloGEeS2WoXr83SnEA __jbgOFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbim1oGEeS2WoXr83SnEA" name="including" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__jbinFoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__jbinVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbinloGEeS2WoXr83SnEA" name="includingAll" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__jbin1oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__jbioFoGEeS2WoXr83SnEA" name="objects" type="__jbgP1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbioVoGEeS2WoXr83SnEA" name="selectByKind" type="__jbgD1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__jbioloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbio1oGEeS2WoXr83SnEA" parameteredElement="__jbipFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbipFoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbio1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgEVoGEeS2WoXr83SnEA __jbgO1oGEeS2WoXr83SnEA __jbgs1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbipVoGEeS2WoXr83SnEA" name="type" type="__jbgsVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbiploGEeS2WoXr83SnEA" name="selectByType" type="__jbgEloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__jbip1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiqFoGEeS2WoXr83SnEA" parameteredElement="__jbiqVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbiqVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbiqFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgFFoGEeS2WoXr83SnEA __jbgPloGEeS2WoXr83SnEA __jbgtloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbiqloGEeS2WoXr83SnEA" name="type" type="__jbgtFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbiq1oGEeS2WoXr83SnEA" name="closure" type="__jbhX1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__jbirFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__jbirVoGEeS2WoXr83SnEA" name="lambda" type="__jbf7VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbirloGEeS2WoXr83SnEA" name="i" type="__jbiiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbir1oGEeS2WoXr83SnEA" name="collectNested" type="__jbgBloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__jbisFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="__jbisVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbisloGEeS2WoXr83SnEA" parameteredElement="__jbis1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbis1oGEeS2WoXr83SnEA" name="V" templateParameter="__jbisloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgCFoGEeS2WoXr83SnEA __jbgMloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbitFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf6loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbitVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbitloGEeS2WoXr83SnEA" name="collect" type="__jbgCVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__jbit1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiuFoGEeS2WoXr83SnEA" parameteredElement="__jbiuVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbiuVoGEeS2WoXr83SnEA" name="V" templateParameter="__jbiuFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgC1oGEeS2WoXr83SnEA __jbgNVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbiuloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf61oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbiu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbivFoGEeS2WoXr83SnEA" name="reject" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__jbivVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].

oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+ <ownedParameter xmi:id="__jbivloGEeS2WoXr83SnEA" name="lambda" type="__jbf6VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbiv1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbiwFoGEeS2WoXr83SnEA" name="select" type="__jbih1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__jbiwVoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].

oclCode[self->select(iterator | body) =
self->iterate(iterator; result : Bag(T) = Bag{} |
if body then result->including(iterator)
else result
endif)]"/>
+ <ownedParameter xmi:id="__jbiwloGEeS2WoXr83SnEA" name="lambda" type="__jbf6VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbiw1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbixFoGEeS2WoXr83SnEA" name="sortedBy" type="__jbhQVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__jbixVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__jbixloGEeS2WoXr83SnEA" name="lambda" type="__jbf7FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbix1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbiiloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbiyFoGEeS2WoXr83SnEA" name="Class" superClass="__jbjeloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbiyVoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="__jbgGloGEeS2WoXr83SnEA __jbgX1oGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbi7loGEeS2WoXr83SnEA __jbi8VoGEeS2WoXr83SnEA __jbjAloGEeS2WoXr83SnEA __jbjBVoGEeS2WoXr83SnEA __jbjB1oGEeS2WoXr83SnEA __jbjCloGEeS2WoXr83SnEA __jbjLFoGEeS2WoXr83SnEA __jbjXloGEeS2WoXr83SnEA __jbjYloGEeS2WoXr83SnEA"
+ elementType="__jbizFoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jbiyloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbiy1oGEeS2WoXr83SnEA" parameteredElement="__jbizFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbizFoGEeS2WoXr83SnEA" name="T" templateParameter="__jbiy1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgF1oGEeS2WoXr83SnEA __jbgXFoGEeS2WoXr83SnEA __jbg9VoGEeS2WoXr83SnEA __jbhJVoGEeS2WoXr83SnEA __jbhRloGEeS2WoXr83SnEA __jbhZFoGEeS2WoXr83SnEA __jbhf1oGEeS2WoXr83SnEA"
+ typedElement="__jbgBFoGEeS2WoXr83SnEA __jbizloGEeS2WoXr83SnEA __jbjBFoGEeS2WoXr83SnEA __jbjEFoGEeS2WoXr83SnEA __jbjEloGEeS2WoXr83SnEA __jbjKFoGEeS2WoXr83SnEA __jbjLVoGEeS2WoXr83SnEA __jbjMFoGEeS2WoXr83SnEA __jbjN1oGEeS2WoXr83SnEA __jbjPloGEeS2WoXr83SnEA __jbjQVoGEeS2WoXr83SnEA __jbjQloGEeS2WoXr83SnEA __jbjRloGEeS2WoXr83SnEA __jbjSVoGEeS2WoXr83SnEA __jbjSloGEeS2WoXr83SnEA __jbjTloGEeS2WoXr83SnEA __jbjUloGEeS2WoXr83SnEA __jbjWVoGEeS2WoXr83SnEA __jbjXVoGEeS2WoXr83SnEA __jbjYVoGEeS2WoXr83SnEA __jbjZVoGEeS2WoXr83SnEA __jbjaVoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__jbizVoGEeS2WoXr83SnEA" name="Collection" type="__jbgGFoGEeS2WoXr83SnEA" implicit="true" opposite="__jbizloGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ <templateParameterSubstitution href="orphanage.xml#__jblOFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblbloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblgFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbliVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblkloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblm1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblpFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblrVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgKVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgLFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgL1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgMloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgNVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgOFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgO1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgPloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbga1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgbloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgcVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgdFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgd1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgeloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgfVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbggFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgg1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbghloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgiVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgjFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgkloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbglVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgmFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgm1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgnloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgoVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgpFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgp1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgqloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbgrVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStmc.xml#__jbf3VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbl9VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbl-FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbl-1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbl_loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmAVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmBFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmB1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfH1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfIloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfJVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfKFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfK1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfLloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__jblN1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblQFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblSVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblUloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblW1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblZFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblbVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblf1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jbliFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblkVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblmloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblo1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblrFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgKFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgK1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgLloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgMVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgNFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgN1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgOloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgPVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgQFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgQ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgRloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgSVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgTFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgT1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgUloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgVVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgWFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgW1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgXloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgYVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgZFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgZ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgaloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgbVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgcFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgc1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgdloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgeVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgfFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgf1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbggloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbghVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgiFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgi1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgjloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgkVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbglFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgl1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgmloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgnVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgoFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgo1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgploGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgqVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbgrFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqToStmc.xml#__jbf3FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbl9FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbl91oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbl-loGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbl_VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmAFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmA1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmBloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfHloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfIVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfJFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfJ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfKloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfLVoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="__jbizloGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+ opposite="__jbizVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbiz1oGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbi0FoGEeS2WoXr83SnEA" isStatic="true" name="lower" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+ <ownedComment xmi:id="__jbi0VoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbi0loGEeS2WoXr83SnEA" isStatic="true" name="upper" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+ <ownedComment xmi:id="__jbi01oGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="__jbi1FoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbi1VoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+ <ownedParameter xmi:id="__jbi1loGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi11oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbi2FoGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,
in the case of an ordered collection type."/>
+ <ownedParameter xmi:id="__jbi2VoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi2loGEeS2WoXr83SnEA" name="asBag" type="__jbgFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+ <ownedComment xmi:id="__jbi21oGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi3FoGEeS2WoXr83SnEA" name="asOrderedSet" type="__jbhI1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+ <ownedComment xmi:id="__jbi3VoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,
in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi3loGEeS2WoXr83SnEA" name="asSequence" type="__jbhRFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+ <ownedComment xmi:id="__jbi31oGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi4FoGEeS2WoXr83SnEA" name="asSet" type="__jbhYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+ <ownedComment xmi:id="__jbi4VoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi4loGEeS2WoXr83SnEA" name="count" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+ <ownedComment xmi:id="__jbi41oGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+ <ownedParameter xmi:id="__jbi5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi5VoGEeS2WoXr83SnEA" name="excludes" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+ <ownedComment xmi:id="__jbi5loGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__jbi51oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi6FoGEeS2WoXr83SnEA" name="excludesAll" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+ <ownedComment xmi:id="__jbi6VoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="__jbi6loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbi61oGEeS2WoXr83SnEA" parameteredElement="__jbi7FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbi7FoGEeS2WoXr83SnEA" name="T2" templateParameter="__jbi61oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgSloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbi7VoGEeS2WoXr83SnEA" name="c2" type="__jbgSFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi7loGEeS2WoXr83SnEA" name="excluding" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__jbi71oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+ <ownedParameter xmi:id="__jbi8FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi8VoGEeS2WoXr83SnEA" name="excludingAll" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__jbi8loGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__jbi81oGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi9FoGEeS2WoXr83SnEA" name="flatten" type="__jbgS1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__jbi9VoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].
If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__jbi9loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbi91oGEeS2WoXr83SnEA" parameteredElement="__jbi-FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbi-FoGEeS2WoXr83SnEA" name="T2" templateParameter="__jbi91oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgTVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi-VoGEeS2WoXr83SnEA" name="includes" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+ <ownedComment xmi:id="__jbi-loGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__jbi-1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbi_FoGEeS2WoXr83SnEA" name="includesAll" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+ <ownedComment xmi:id="__jbi_VoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="__jbi_loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbi_1oGEeS2WoXr83SnEA" parameteredElement="__jbjAFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjAFoGEeS2WoXr83SnEA" name="T2" templateParameter="__jbi_1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgUFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjAVoGEeS2WoXr83SnEA" name="c2" type="__jbgTloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjAloGEeS2WoXr83SnEA" name="including" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__jbjA1oGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__jbjBFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjBVoGEeS2WoXr83SnEA" name="includingAll" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__jbjBloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__jbjB1oGEeS2WoXr83SnEA" name="objects" type="__jbiyVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjCFoGEeS2WoXr83SnEA" name="intersection" type="__jbgFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__jbjCVoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+ <ownedParameter xmi:id="__jbjCloGEeS2WoXr83SnEA" name="c" type="__jbiyVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjC1oGEeS2WoXr83SnEA" name="intersection" type="__jbhYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__jbjDFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+ <ownedParameter xmi:id="__jbjDVoGEeS2WoXr83SnEA" name="u" type="__jbhfVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjDloGEeS2WoXr83SnEA" name="isEmpty" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+ <ownedComment xmi:id="__jbjD1oGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?

Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjEFoGEeS2WoXr83SnEA" name="max" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+ <ownedComment xmi:id="__jbjEVoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].
Elements must be of a type supporting the max operation.
The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjEloGEeS2WoXr83SnEA" name="min" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+ <ownedComment xmi:id="__jbjE1oGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].
Elements must be of a type supporting the min operation.
The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjFFoGEeS2WoXr83SnEA" name="notEmpty" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+ <ownedComment xmi:id="__jbjFVoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?

oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjFloGEeS2WoXr83SnEA" name="product" type="__jbhXFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+ <ownedComment xmi:id="__jbjF1oGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+ <ownedTemplateSignature xmi:id="__jbjGFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjGVoGEeS2WoXr83SnEA" parameteredElement="__jbjGloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjGloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbjGVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgU1oGEeS2WoXr83SnEA" typedElement="__jbgBVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjG1oGEeS2WoXr83SnEA" name="c2" type="__jbgUVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjHFoGEeS2WoXr83SnEA" name="selectByKind" type="__jbgVFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__jbjHVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjHloGEeS2WoXr83SnEA" parameteredElement="__jbjH1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjH1oGEeS2WoXr83SnEA" name="TT" templateParameter="__jbjHloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgVloGEeS2WoXr83SnEA __jbguVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjIFoGEeS2WoXr83SnEA" name="type" type="__jbgt1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjIVoGEeS2WoXr83SnEA" name="selectByType" type="__jbgV1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__jbjIloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjI1oGEeS2WoXr83SnEA" parameteredElement="__jbjJFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjJFoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbjI1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgWVoGEeS2WoXr83SnEA __jbgvFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjJVoGEeS2WoXr83SnEA" name="type" type="__jbguloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjJloGEeS2WoXr83SnEA" name="size" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+ <ownedComment xmi:id="__jbjJ1oGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjKFoGEeS2WoXr83SnEA" name="sum" type="__jbizFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+ <ownedComment xmi:id="__jbjKVoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].
Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.
The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).
UnlimitedNatural, Integer and Real fulfill this condition.

If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,
which may result in unpredictable results during evaluation.
If an implementation is able to detect a lack of associativity or commutativity,
the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjKloGEeS2WoXr83SnEA" name="union" type="__jbgFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="__jbjK1oGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+ <ownedParameter xmi:id="__jbjLFoGEeS2WoXr83SnEA" name="c" type="__jbiyVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjLVoGEeS2WoXr83SnEA" name="any" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+ <ownedComment xmi:id="__jbjLloGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].
If there is more than one element for which body is oclText[true], one of them is returned.
There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+ <ownedParameter xmi:id="__jbjL1oGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjMFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjMVoGEeS2WoXr83SnEA" name="collectNested" type="__jbgQloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__jbjMloGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+ <ownedTemplateSignature xmi:id="__jbjM1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjNFoGEeS2WoXr83SnEA" parameteredElement="__jbjNVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjNVoGEeS2WoXr83SnEA" name="V" templateParameter="__jbjNFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgRFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjNloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf71oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjN1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjOFoGEeS2WoXr83SnEA" name="collect" type="__jbgRVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedComment xmi:id="__jbjOVoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.
The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.
collectNested is defined individually for each subclass of CollectionType."/>
+ <ownedTemplateSignature xmi:id="__jbjOloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjO1oGEeS2WoXr83SnEA" parameteredElement="__jbjPFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjPFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbjO1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgR1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjPVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf8FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjPloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjP1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedParameter xmi:id="__jbjQFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjQVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjQloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjQ1oGEeS2WoXr83SnEA" name="exists" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedComment xmi:id="__jbjRFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+ <ownedParameter xmi:id="__jbjRVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjRloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjR1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedParameter xmi:id="__jbjSFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjSVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjSloGEeS2WoXr83SnEA" name="j" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjS1oGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedComment xmi:id="__jbjTFoGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="__jbjTVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjTloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjT1oGEeS2WoXr83SnEA" name="isUnique" type="__jbhrFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+ <ownedComment xmi:id="__jbjUFoGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="__jbjUVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf8loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjUloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjU1oGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="__jbjVloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+ <ownedTemplateSignature xmi:id="__jbjVFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjVVoGEeS2WoXr83SnEA" parameteredElement="__jbjVloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjVloGEeS2WoXr83SnEA" name="Tacc" templateParameter="__jbjVVoGEeS2WoXr83SnEA"
+ typedElement="__jbjU1oGEeS2WoXr83SnEA __jbjWFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjV1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf8VoGEeS2WoXr83SnEA"/>
+ <ownedAccumulator xmi:id="__jbjWFoGEeS2WoXr83SnEA" name="acc" isRequired="false" type="__jbjVloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjWVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjWloGEeS2WoXr83SnEA" name="one" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+ <ownedComment xmi:id="__jbjW1oGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__jbjXFoGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjXVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjXloGEeS2WoXr83SnEA" name="reject" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__jbjX1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__jbjYFoGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjYVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjYloGEeS2WoXr83SnEA" name="select" type="__jbiyVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__jbjY1oGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__jbjZFoGEeS2WoXr83SnEA" name="lambda" type="__jbf7loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjZVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbjZloGEeS2WoXr83SnEA" name="sortedBy" type="__jbhRFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__jbjZ1oGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__jbjaFoGEeS2WoXr83SnEA" name="lambda" type="__jbf8loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbjaVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbizFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjaloGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="__jbgHVoGEeS2WoXr83SnEA __jbgZVoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbja1oGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+ <ownedAttribute xmi:id="__jbjbFoGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="__jbhJloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+ opposite="__jbjcloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjbVoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="__jbjbloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+ <ownedComment xmi:id="__jbjb1oGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjcFoGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="__jbgYloGEeS2WoXr83SnEA __jbg-FoGEeS2WoXr83SnEA __jbhKFoGEeS2WoXr83SnEA __jbhgloGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjcVoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+ <ownedAttribute xmi:id="__jbjcloGEeS2WoXr83SnEA" name="Enumeration" type="__jbgG1oGEeS2WoXr83SnEA" implicit="true" opposite="__jbjbFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="__jbjc1oGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="__jbgIFoGEeS2WoXr83SnEA __jbgaFoGEeS2WoXr83SnEA"
+ superClass="__jbiyFoGEeS2WoXr83SnEA __jbkAloGEeS2WoXr83SnEA" instanceType="__jbjdloGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jbjdFoGEeS2WoXr83SnEA" templateBinding="__jbgr1oGEeS2WoXr83SnEA __jbgsloGEeS2WoXr83SnEA __jbgtVoGEeS2WoXr83SnEA __jbguFoGEeS2WoXr83SnEA __jbgu1oGEeS2WoXr83SnEA __jbgvloGEeS2WoXr83SnEA __jbgwVoGEeS2WoXr83SnEA __jbgxFoGEeS2WoXr83SnEA __jbgx1oGEeS2WoXr83SnEA __jbgyloGEeS2WoXr83SnEA __jbgzVoGEeS2WoXr83SnEA __jbg0FoGEeS2WoXr83SnEA __jbg01oGEeS2WoXr83SnEA __jbg1loGEeS2WoXr83SnEA __jbg2VoGEeS2WoXr83SnEA __jbg3FoGEeS2WoXr83SnEA __jbg31oGEeS2WoXr83SnEA __jbg4loGEeS2WoXr83SnEA __jbg5VoGEeS2WoXr83SnEA __jbg6FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjdVoGEeS2WoXr83SnEA" parameteredElement="__jbjdloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgsFoGEeS2WoXr83SnEA __jbgs1oGEeS2WoXr83SnEA __jbgtloGEeS2WoXr83SnEA __jbguVoGEeS2WoXr83SnEA __jbgvFoGEeS2WoXr83SnEA __jbgv1oGEeS2WoXr83SnEA __jbgwloGEeS2WoXr83SnEA __jbgxVoGEeS2WoXr83SnEA __jbgyFoGEeS2WoXr83SnEA __jbgy1oGEeS2WoXr83SnEA __jbgzloGEeS2WoXr83SnEA __jbg0VoGEeS2WoXr83SnEA __jbg1FoGEeS2WoXr83SnEA __jbg11oGEeS2WoXr83SnEA __jbg2loGEeS2WoXr83SnEA __jbg3VoGEeS2WoXr83SnEA __jbg4FoGEeS2WoXr83SnEA __jbg41oGEeS2WoXr83SnEA __jbg5loGEeS2WoXr83SnEA __jbg6VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjdloGEeS2WoXr83SnEA" name="T" templateParameter="__jbjdVoGEeS2WoXr83SnEA"
+ typedElement="__jbjeFoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__jbjd1oGEeS2WoXr83SnEA" name="Metaclass" type="__jbgHloGEeS2WoXr83SnEA" implicit="true" opposite="__jbjeFoGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="__jbjeFoGEeS2WoXr83SnEA" name="instanceType" type="__jbjdloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+ opposite="__jbjd1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjeVoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+ </ownedAttribute>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="__jbjeloGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="__jbga1oGEeS2WoXr83SnEA __jbhhVoGEeS2WoXr83SnEA"
+ typedElement="__jbikloGEeS2WoXr83SnEA __jbi5FoGEeS2WoXr83SnEA __jbi51oGEeS2WoXr83SnEA __jbi8FoGEeS2WoXr83SnEA __jbi-1oGEeS2WoXr83SnEA __jbj8FoGEeS2WoXr83SnEA __jbkJVoGEeS2WoXr83SnEA __jbkO1oGEeS2WoXr83SnEA __jbkjloGEeS2WoXr83SnEA __jbk31oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbje1oGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.
Conceptually, OclAny behaves as a supertype for all the types.
Features of OclAny are available on each object in all OCL expressions.
OclAny is itself an instance of the metatype AnyType.

All classes in a UML model inherit all operations defined on OclAny.
To avoid name conflicts between properties in the model and the properties inherited from OclAny,
all names on the properties of OclAny start with ‘ocl.’
Although theoretically there may still be name conflicts, they can be avoided.
One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.

Operations of OclAny, where the instance of OclAny is called object."/>
+ <ownedOperation xmi:id="__jbjfFoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjfVoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+ <ownedParameter xmi:id="__jbjfloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjf1oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjgFoGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+ <ownedParameter xmi:id="__jbjgVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjgloGEeS2WoXr83SnEA" name="oclAsSet" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+ <ownedComment xmi:id="__jbjg1oGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjhFoGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="__jbjiFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedComment xmi:id="__jbjhVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

In the case of feature redefinition, casting an object to a supertype of its actual type
does not access the supertype’s definition of the feature;
according to the semantics of redefinition, the redefined feature simply does not exist for the object.
However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+ <ownedTemplateSignature xmi:id="__jbjhloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjh1oGEeS2WoXr83SnEA" parameteredElement="__jbjiFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjiFoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbjh1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgv1oGEeS2WoXr83SnEA" typedElement="__jbjhFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjiVoGEeS2WoXr83SnEA" name="type" type="__jbgvVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjiloGEeS2WoXr83SnEA" name="oclIsInState" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+ <ownedComment xmi:id="__jbji1oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+ <ownedParameter xmi:id="__jbjjFoGEeS2WoXr83SnEA" name="statespec" type="__jbj9FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjjVoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true">
+ <ownedComment xmi:id="__jbjjloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjj1oGEeS2WoXr83SnEA" name="oclIsKindOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedComment xmi:id="__jbjkFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.
That is, oclText[self] is of type t or a subtype of t."/>
+ <ownedTemplateSignature xmi:id="__jbjkVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjkloGEeS2WoXr83SnEA" parameteredElement="__jbjk1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjk1oGEeS2WoXr83SnEA" name="T" templateParameter="__jbjkloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgwloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjlFoGEeS2WoXr83SnEA" name="type" type="__jbgwFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjlVoGEeS2WoXr83SnEA" name="oclIsNew" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__jbjlloGEeS2WoXr83SnEA" body="Can only be used in a postcondition.
Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn’t exist at precondition time)."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjl1oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedComment xmi:id="__jbjmFoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+ <ownedTemplateSignature xmi:id="__jbjmVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbjmloGEeS2WoXr83SnEA" parameteredElement="__jbjm1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbjm1oGEeS2WoXr83SnEA" name="T" templateParameter="__jbjmloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgxVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbjnFoGEeS2WoXr83SnEA" name="type" type="__jbgw1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjnVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true">
+ <ownedComment xmi:id="__jbjnloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjn1oGEeS2WoXr83SnEA" name="oclLog" type="__jbj8loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="__jbjoFoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjoVoGEeS2WoXr83SnEA" name="oclLog" type="__jbj8loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="__jbjoloGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+ <ownedParameter xmi:id="__jbjo1oGEeS2WoXr83SnEA" name="message" type="__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjpFoGEeS2WoXr83SnEA" name="oclType" type="__jbg0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+ <ownedComment xmi:id="__jbjpVoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjploGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__jbjp1oGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjqFoGEeS2WoXr83SnEA" name="OclComparable" superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjqVoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived
compareTo implementation may be sorted."/>
+ <ownedOperation xmi:id="__jbjqloGEeS2WoXr83SnEA" name="<" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjq1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+ <ownedParameter xmi:id="__jbjrFoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjrVoGEeS2WoXr83SnEA" name="<=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjrloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="__jbjr1oGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjsFoGEeS2WoXr83SnEA" name=">" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjsVoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+ <ownedParameter xmi:id="__jbjsloGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjs1oGEeS2WoXr83SnEA" name=">=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+ precedence="__jblL1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjtFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="__jbjtVoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjtloGEeS2WoXr83SnEA" name="compareTo" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+ <ownedComment xmi:id="__jbjt1oGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.

The compareTo operation should be commutative."/>
+ <ownedParameter xmi:id="__jbjuFoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbjuVoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="__jbgbloGEeS2WoXr83SnEA __jbhZ1oGEeS2WoXr83SnEA __jbhiFoGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjvVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjuloGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined
for OclElement are therefore applicable to all user-defined types."/>
+ <ownedOperation xmi:id="__jbju1oGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+ <ownedComment xmi:id="__jbjvFoGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjvVoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="__jbjuVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+ <ownedComment xmi:id="__jbjvloGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjv1oGEeS2WoXr83SnEA" name="oclContents" type="__jbhZVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+ <ownedComment xmi:id="__jbjwFoGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="__jbjwVoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="__jbg0VoGEeS2WoXr83SnEA"
+ superClass="__jbkB1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjwloGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.
It has one single instance, identified as oclText[invalid].
Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().
OclInvalid is itself an instance of the metatype InvalidType."/>
+ <ownedOperation xmi:id="__jbjw1oGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjxFoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="__jbjxVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjxloGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbjx1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="__jbjyFoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjyVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+ <ownedComment xmi:id="__jbjyloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjy1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="__jblMVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbjzFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjzVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isValidating="true" precedence="__jblNFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbjzloGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbjz1oGEeS2WoXr83SnEA" name="oclAsSet" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+ <ownedOperation xmi:id="__jbj0FoGEeS2WoXr83SnEA" name="oclAsType" type="__jbj01oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedTemplateSignature xmi:id="__jbj0VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbj0loGEeS2WoXr83SnEA" parameteredElement="__jbj01oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbj01oGEeS2WoXr83SnEA" name="TT" templateParameter="__jbj0loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgyFoGEeS2WoXr83SnEA" typedElement="__jbj0FoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbj1FoGEeS2WoXr83SnEA" name="type" type="__jbgxloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj1VoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__jbj1loGEeS2WoXr83SnEA" name="oclIsKindOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedTemplateSignature xmi:id="__jbj11oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbj2FoGEeS2WoXr83SnEA" parameteredElement="__jbj2VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbj2VoGEeS2WoXr83SnEA" name="T" templateParameter="__jbj2FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgy1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbj2loGEeS2WoXr83SnEA" name="type" type="__jbgyVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj21oGEeS2WoXr83SnEA" name="oclIsTypeOf" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedTemplateSignature xmi:id="__jbj3FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbj3VoGEeS2WoXr83SnEA" parameteredElement="__jbj3loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbj3loGEeS2WoXr83SnEA" name="T" templateParameter="__jbj3VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgzloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbj31oGEeS2WoXr83SnEA" name="type" type="__jbgzFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj4FoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__jbj4VoGEeS2WoXr83SnEA" name="oclType" type="__jbg0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+ <ownedOperation xmi:id="__jbj4loGEeS2WoXr83SnEA" name="or" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="__jblMloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbj41oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj5FoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__jbj5VoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj5loGEeS2WoXr83SnEA" name="OclLambda" superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbj51oGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda
therefore apply to all lambda expressions."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj6FoGEeS2WoXr83SnEA" name="OclMessage" superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbj6VoGEeS2WoXr83SnEA" body="OclMessage
This sub clause contains the definition of the standard type OclMessage.
As defined in this sub clause, each ocl message type is actually a template type with one parameter.
‘T’ denotes the parameter.
A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType.
Every OclMessage is fully determined by either the operation, or signal given as parameter.
Note that there is conceptually an undefined (infinite) number of these types,
as each is determined by a different operation or signal.
These types are unnamed. Every type has as attributes the name of the operation or signal,
and either all formal parameters of the operation, or all attributes of the signal.
OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+ <ownedOperation xmi:id="__jbj6loGEeS2WoXr83SnEA" name="hasReturned" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__jbj61oGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.
This implies the fact that the message has been sent. False in all other cases."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj7FoGEeS2WoXr83SnEA" name="isOperationCall" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__jbj7VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj7loGEeS2WoXr83SnEA" name="isSignalSent" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__jbj71oGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj8FoGEeS2WoXr83SnEA" name="result" type="__jbjeloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="__jbj8VoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,
and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="__jbj8loGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="__jbgcVoGEeS2WoXr83SnEA __jbg1FoGEeS2WoXr83SnEA __jbhaloGEeS2WoXr83SnEA __jbhi1oGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbhr1oGEeS2WoXr83SnEA __jbhsloGEeS2WoXr83SnEA __jbhzVoGEeS2WoXr83SnEA __jbh0FoGEeS2WoXr83SnEA __jbh1VoGEeS2WoXr83SnEA __jbh2FoGEeS2WoXr83SnEA __jbh3VoGEeS2WoXr83SnEA __jbh41oGEeS2WoXr83SnEA __jbh5loGEeS2WoXr83SnEA __jbh71oGEeS2WoXr83SnEA __jbh8loGEeS2WoXr83SnEA __jbh91oGEeS2WoXr83SnEA __jbh-loGEeS2WoXr83SnEA __jbh_VoGEeS2WoXr83SnEA __jbiAFoGEeS2WoXr83SnEA __jbiA1oGEeS2WoXr83SnEA __jbiBloGEeS2WoXr83SnEA __jbiCVoGEeS2WoXr83SnEA __jbiDFoGEeS2WoXr83SnEA __jbiEVoGEeS2WoXr83SnEA __jbiFloGEeS2WoXr83SnEA __jbiGVoGEeS2WoXr83SnEA __jbiJFoGEeS2WoXr83SnEA __jbiJ1oGEeS2WoXr83SnEA __jbiKVoGEeS2WoXr83SnEA __jbiK1oGEeS2WoXr83SnEA __jbiLloGEeS2WoXr83SnEA __jbiMVoGEeS2WoXr83SnEA __jbiOVoGEeS2WoXr83SnEA __jbijFoGEeS2WoXr83SnEA __jbij1oGEeS2WoXr83SnEA __jbi1loGEeS2WoXr83SnEA __jbi2VoGEeS2WoXr83SnEA __jbjfloGEeS2WoXr83SnEA __jbjgVoGEeS2WoXr83SnEA __jbjn1oGEeS2WoXr83SnEA __jbjoVoGEeS2WoXr83SnEA __jbjrFoGEeS2WoXr83SnEA __jbjr1oGEeS2WoXr83SnEA __jbjsloGEeS2WoXr83SnEA __jbjtVoGEeS2WoXr83SnEA __jbjuFoGEeS2WoXr83SnEA __jbjxVoGEeS2WoXr83SnEA __jbjyFoGEeS2WoXr83SnEA __jbj91oGEeS2WoXr83SnEA __jbj-VoGEeS2WoXr83SnEA __jbj-loGEeS2WoXr83SnEA __jbj_1oGEeS2WoXr83SnEA __jbkAVoGEeS2WoXr83SnEA __jbkCloGEeS2WoXr83SnEA __jbkDVoGEeS2WoXr83SnEA __jbkMFoGEeS2WoXr83SnEA __jbkMloGEeS2WoXr83SnEA __jbkgloGEeS2WoXr83SnEA __jbkhVoGEeS2WoXr83SnEA __jbk2VoGEeS2WoXr83SnEA __jbk3FoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbj81oGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation
and Iteration signatures. Instances of OclSelf are never created."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj9FoGEeS2WoXr83SnEA" name="OclState" superClass="__jbjeloGEeS2WoXr83SnEA" typedElement="__jbjjFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj9VoGEeS2WoXr83SnEA" name="OclSummable" superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbj9loGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived
sum and zero implementations may be summed."/>
+ <ownedOperation xmi:id="__jbj91oGEeS2WoXr83SnEA" name="sum" type="__jbj8loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbj-FoGEeS2WoXr83SnEA" body="Return the sum of self and that.

The sum operation should be associative."/>
+ <ownedParameter xmi:id="__jbj-VoGEeS2WoXr83SnEA" name="that" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbj-loGEeS2WoXr83SnEA" name="zero" type="__jbj8loGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbj-1oGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.

zero().sum(self) = self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbj_FoGEeS2WoXr83SnEA" name="OclTuple" superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbj_VoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple
therefore apply to all tuples."/>
+ <ownedOperation xmi:id="__jbj_loGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbj_1oGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkAFoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkAVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbkAloGEeS2WoXr83SnEA" name="OclType" superClass="__jbjuVoGEeS2WoXr83SnEA" typedElement="__jbkBloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbkA1oGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined
for OclType are therefore applicable to all UML types."/>
+ <ownedOperation xmi:id="__jbkBFoGEeS2WoXr83SnEA" name="conformsTo" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+ <ownedComment xmi:id="__jbkBVoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+ <ownedParameter xmi:id="__jbkBloGEeS2WoXr83SnEA" name="type2" type="__jbkAloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="__jbkB1oGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="__jbg11oGEeS2WoXr83SnEA"
+ superClass="__jbjeloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbkCFoGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.
It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.
Any property call applied on oclText[null] results in oclText[invalid], except for the
oclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.
However, by virtue of the implicit conversion to a collection literal,
an expression evaluating to oclText[null] can be used as source of collection operations (such as ‘isEmpty’).
If the source is the oclText[null] literal, it is implicitly converted to Bag{}.

OclVoid is itself an instance of the metatype VoidType."/>
+ <ownedOperation xmi:id="__jbkCVoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkCloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkC1oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbkDFoGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]
if object is oclText[invalid], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="__jbkDVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkDloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="__jbhaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+ <ownedComment xmi:id="__jbkD1oGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkEFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+ precedence="__jblMVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkEVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkEloGEeS2WoXr83SnEA" name="implies" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+ precedence="__jblNFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkE1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkFFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__jbkFVoGEeS2WoXr83SnEA" name="oclIsUndefined" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="__jbkFloGEeS2WoXr83SnEA" name="or" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+ precedence="__jblMloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkF1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="__jbhrFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkGFoGEeS2WoXr83SnEA" name="toString" type="__jbiHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="__jbkGVoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbkGloGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__jbgcloGEeS2WoXr83SnEA"
+ elementType="__jbkHVoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jbkG1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkHFoGEeS2WoXr83SnEA" parameteredElement="__jbkHVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkHVoGEeS2WoXr83SnEA" name="T" templateParameter="__jbkHFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgdFoGEeS2WoXr83SnEA" typedElement="__jbkHloGEeS2WoXr83SnEA __jbkIVoGEeS2WoXr83SnEA __jbkJloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbls1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbg7FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbg71oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbg8loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbg9VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbg-FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbg-1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbg_loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhAVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhBFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhB1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhCloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhDVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhEFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhE1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhFloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhGVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhHFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhH1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhIloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStmc.xml#__jbf4FoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__jblsloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbg61oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbg7loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbg8VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbg9FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbg91oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbg-loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbg_VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhAFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhA1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhBloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhCVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhDFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhD1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhEloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhFVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhGFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhG1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhHloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhIVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqToStmc.xml#__jbf31oGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__jbkHloGEeS2WoXr83SnEA" name="at" isRequired="false" type="__jbkHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbkH1oGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+ <ownedParameter xmi:id="__jbkIFoGEeS2WoXr83SnEA" name="index" type="__jbhyloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkIVoGEeS2WoXr83SnEA" name="first" isRequired="false" type="__jbkHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbkIloGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkI1oGEeS2WoXr83SnEA" name="indexOf" type="__jbhyloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+ <ownedComment xmi:id="__jbkJFoGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+ <ownedParameter xmi:id="__jbkJVoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkJloGEeS2WoXr83SnEA" name="last" isRequired="false" type="__jbkHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbkJ1oGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="__jbkKFoGEeS2WoXr83SnEA" name="OrderedSet" superClass="__jbhCFoGEeS2WoXr83SnEA __jbhlVoGEeS2WoXr83SnEA"
+ typedElement="__jbkLFoGEeS2WoXr83SnEA __jbkM1oGEeS2WoXr83SnEA __jbkNloGEeS2WoXr83SnEA __jbkOVoGEeS2WoXr83SnEA __jbkPFoGEeS2WoXr83SnEA __jbkQ1oGEeS2WoXr83SnEA __jbkRloGEeS2WoXr83SnEA __jbkSloGEeS2WoXr83SnEA __jbkTVoGEeS2WoXr83SnEA __jbkUFoGEeS2WoXr83SnEA __jbkXFoGEeS2WoXr83SnEA __jbkYFoGEeS2WoXr83SnEA __jbkcVoGEeS2WoXr83SnEA __jbkdVoGEeS2WoXr83SnEA __jbkeVoGEeS2WoXr83SnEA"
+ elementType="__jbkK1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jbkKVoGEeS2WoXr83SnEA" templateBinding="__jbhJFoGEeS2WoXr83SnEA __jbhJ1oGEeS2WoXr83SnEA __jbhKloGEeS2WoXr83SnEA __jbhLVoGEeS2WoXr83SnEA __jbhMFoGEeS2WoXr83SnEA __jbhM1oGEeS2WoXr83SnEA __jbhNloGEeS2WoXr83SnEA __jbhOVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkKloGEeS2WoXr83SnEA" parameteredElement="__jbkK1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbhJVoGEeS2WoXr83SnEA __jbhKFoGEeS2WoXr83SnEA __jbhK1oGEeS2WoXr83SnEA __jbhLloGEeS2WoXr83SnEA __jbhMVoGEeS2WoXr83SnEA __jbhNFoGEeS2WoXr83SnEA __jbhN1oGEeS2WoXr83SnEA __jbhOloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkK1oGEeS2WoXr83SnEA" name="T" templateParameter="__jbkKloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbghloGEeS2WoXr83SnEA __jbhCloGEeS2WoXr83SnEA __jbhl1oGEeS2WoXr83SnEA" typedElement="__jbkNVoGEeS2WoXr83SnEA __jbkRVoGEeS2WoXr83SnEA __jbkSVoGEeS2WoXr83SnEA __jbkTFoGEeS2WoXr83SnEA __jbkY1oGEeS2WoXr83SnEA __jbkaloGEeS2WoXr83SnEA __jbkcFoGEeS2WoXr83SnEA __jbkdFoGEeS2WoXr83SnEA __jbkeFoGEeS2WoXr83SnEA __jbkfFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__jbkLFoGEeS2WoXr83SnEA" name="-" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbkLVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__jbkLloGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkL1oGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkMFoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkMVoGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkMloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkM1oGEeS2WoXr83SnEA" name="append" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="__jbkNFoGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="__jbkNVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkNloGEeS2WoXr83SnEA" name="appendAll" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="__jbkN1oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="__jbkOFoGEeS2WoXr83SnEA" name="objects" type="__jbhCFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkOVoGEeS2WoXr83SnEA" name="excluding" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__jbkOloGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="__jbkO1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkPFoGEeS2WoXr83SnEA" name="excludingAll" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__jbkPVoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__jbkPloGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkP1oGEeS2WoXr83SnEA" name="flatten" type="__jbhKVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedTemplateSignature xmi:id="__jbkQFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkQVoGEeS2WoXr83SnEA" parameteredElement="__jbkQloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkQloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbkQVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgfVoGEeS2WoXr83SnEA __jbhAVoGEeS2WoXr83SnEA __jbhK1oGEeS2WoXr83SnEA __jbhjloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkQ1oGEeS2WoXr83SnEA" name="including" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__jbkRFoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+ <ownedParameter xmi:id="__jbkRVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkRloGEeS2WoXr83SnEA" name="insertAt" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbkR1oGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+ <ownedParameter xmi:id="__jbkSFoGEeS2WoXr83SnEA" name="index" type="__jbhyloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbkSVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkSloGEeS2WoXr83SnEA" name="prepend" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="__jbkS1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__jbkTFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkTVoGEeS2WoXr83SnEA" name="prependAll" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="__jbkTloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__jbkT1oGEeS2WoXr83SnEA" name="objects" type="__jbhCFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkUFoGEeS2WoXr83SnEA" name="reverse" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="__jbkUVoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkUloGEeS2WoXr83SnEA" name="selectByKind" type="__jbhLFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__jbkU1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkVFoGEeS2WoXr83SnEA" parameteredElement="__jbkVVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkVVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkVFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbggFoGEeS2WoXr83SnEA __jbg2loGEeS2WoXr83SnEA __jbhBFoGEeS2WoXr83SnEA __jbhLloGEeS2WoXr83SnEA __jbhkVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkVloGEeS2WoXr83SnEA" name="type" type="__jbg2FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkV1oGEeS2WoXr83SnEA" name="selectByType" type="__jbhL1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__jbkWFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkWVoGEeS2WoXr83SnEA" parameteredElement="__jbkWloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkWloGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkWVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgg1oGEeS2WoXr83SnEA __jbg3VoGEeS2WoXr83SnEA __jbhB1oGEeS2WoXr83SnEA __jbhMVoGEeS2WoXr83SnEA __jbhlFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkW1oGEeS2WoXr83SnEA" name="type" type="__jbg21oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkXFoGEeS2WoXr83SnEA" name="subOrderedSet" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbkXVoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="__jbkXloGEeS2WoXr83SnEA" name="lower" type="__jbhyloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbkX1oGEeS2WoXr83SnEA" name="upper" type="__jbhyloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkYFoGEeS2WoXr83SnEA" name="closure" type="__jbkKFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__jbkYVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__jbkYloGEeS2WoXr83SnEA" name="lambda" type="__jbf9VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkY1oGEeS2WoXr83SnEA" name="i" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkZFoGEeS2WoXr83SnEA" name="collectNested" type="__jbhR1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__jbkZVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="__jbkZloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkZ1oGEeS2WoXr83SnEA" parameteredElement="__jbkaFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkaFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbkZ1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgd1oGEeS2WoXr83SnEA __jbg-1oGEeS2WoXr83SnEA __jbhSVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkaVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf9loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkaloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbka1oGEeS2WoXr83SnEA" name="collect" type="__jbhSloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__jbkbFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkbVoGEeS2WoXr83SnEA" parameteredElement="__jbkbloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkbloGEeS2WoXr83SnEA" name="V" templateParameter="__jbkbVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgeloGEeS2WoXr83SnEA __jbg_loGEeS2WoXr83SnEA __jbhTFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkb1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf91oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkcFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkcVoGEeS2WoXr83SnEA" name="reject" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__jbkcloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__jbkc1oGEeS2WoXr83SnEA" name="lambda" type="__jbf81oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkdFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkdVoGEeS2WoXr83SnEA" name="select" type="__jbkKFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__jbkdloGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+ <ownedParameter xmi:id="__jbkd1oGEeS2WoXr83SnEA" name="lambda" type="__jbf81oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkeFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkeVoGEeS2WoXr83SnEA" name="sortedBy" type="__jbkKFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__jbkeloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__jbke1oGEeS2WoXr83SnEA" name="lambda" type="__jbf9FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkfFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkK1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbkfVoGEeS2WoXr83SnEA" name="Sequence" superClass="__jbhGloGEeS2WoXr83SnEA"
+ typedElement="__jbkhloGEeS2WoXr83SnEA __jbkiVoGEeS2WoXr83SnEA __jbkjFoGEeS2WoXr83SnEA __jbkj1oGEeS2WoXr83SnEA __jbkl1oGEeS2WoXr83SnEA __jbkmloGEeS2WoXr83SnEA __jbknloGEeS2WoXr83SnEA __jbkoVoGEeS2WoXr83SnEA __jbkpFoGEeS2WoXr83SnEA __jbksFoGEeS2WoXr83SnEA __jbkxVoGEeS2WoXr83SnEA __jbkyVoGEeS2WoXr83SnEA __jbkzVoGEeS2WoXr83SnEA"
+ elementType="__jbkgFoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jbkfloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkf1oGEeS2WoXr83SnEA" parameteredElement="__jbkgFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkgFoGEeS2WoXr83SnEA" name="T" templateParameter="__jbkf1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgmFoGEeS2WoXr83SnEA __jbhHFoGEeS2WoXr83SnEA __jbhNFoGEeS2WoXr83SnEA __jbhmloGEeS2WoXr83SnEA"
+ typedElement="__jbkiFoGEeS2WoXr83SnEA __jbkmVoGEeS2WoXr83SnEA __jbknVoGEeS2WoXr83SnEA __jbkoFoGEeS2WoXr83SnEA __jbkt1oGEeS2WoXr83SnEA __jbkvloGEeS2WoXr83SnEA __jbkxFoGEeS2WoXr83SnEA __jbkyFoGEeS2WoXr83SnEA __jbkzFoGEeS2WoXr83SnEA __jbk0FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbltloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhPVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhQFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhQ1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhRloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhSVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhTFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhT1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhUloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhVVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhWFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhW1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStmc.xml#__jbf41oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__jbltVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhPFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhP1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhQloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhRVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhSFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhS1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhTloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhUVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhVFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhV1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhWloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqToStmc.xml#__jbf4loGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__jbkgVoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbkgloGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkg1oGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbkhFoGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+ <ownedParameter xmi:id="__jbkhVoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkhloGEeS2WoXr83SnEA" name="append" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="__jbkh1oGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="__jbkiFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkiVoGEeS2WoXr83SnEA" name="appendAll" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="__jbkiloGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="__jbki1oGEeS2WoXr83SnEA" name="objects" type="__jbhGloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkjFoGEeS2WoXr83SnEA" name="excluding" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__jbkjVoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="__jbkjloGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkj1oGEeS2WoXr83SnEA" name="excludingAll" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__jbkkFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__jbkkVoGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkkloGEeS2WoXr83SnEA" name="flatten" type="__jbhU1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__jbkk1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].
If the element type is a collection type, the result is the sequence containing all the elements
of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+ <ownedTemplateSignature xmi:id="__jbklFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbklVoGEeS2WoXr83SnEA" parameteredElement="__jbklloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbklloGEeS2WoXr83SnEA" name="T2" templateParameter="__jbklVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgj1oGEeS2WoXr83SnEA __jbhE1oGEeS2WoXr83SnEA __jbhVVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkl1oGEeS2WoXr83SnEA" name="including" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__jbkmFoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+ <ownedParameter xmi:id="__jbkmVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkmloGEeS2WoXr83SnEA" name="insertAt" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbkm1oGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+ <ownedParameter xmi:id="__jbknFoGEeS2WoXr83SnEA" name="index" type="__jbhyloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbknVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbknloGEeS2WoXr83SnEA" name="prepend" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="__jbkn1oGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__jbkoFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkoVoGEeS2WoXr83SnEA" name="prependAll" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="__jbkoloGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="__jbko1oGEeS2WoXr83SnEA" name="objects" type="__jbhGloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkpFoGEeS2WoXr83SnEA" name="reverse" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="__jbkpVoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkploGEeS2WoXr83SnEA" name="selectByKind" type="__jbhVloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__jbkp1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkqFoGEeS2WoXr83SnEA" parameteredElement="__jbkqVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkqVoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkqFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgkloGEeS2WoXr83SnEA __jbg4FoGEeS2WoXr83SnEA __jbhFloGEeS2WoXr83SnEA __jbhWFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkqloGEeS2WoXr83SnEA" name="type" type="__jbg3loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbkq1oGEeS2WoXr83SnEA" name="selectByType" type="__jbhWVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__jbkrFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkrVoGEeS2WoXr83SnEA" parameteredElement="__jbkrloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkrloGEeS2WoXr83SnEA" name="TT" templateParameter="__jbkrVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbglVoGEeS2WoXr83SnEA __jbg41oGEeS2WoXr83SnEA __jbhGVoGEeS2WoXr83SnEA __jbhW1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkr1oGEeS2WoXr83SnEA" name="type" type="__jbg4VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbksFoGEeS2WoXr83SnEA" name="subSequence" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="__jbksVoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="__jbksloGEeS2WoXr83SnEA" name="lower" type="__jbhyloGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="__jbks1oGEeS2WoXr83SnEA" name="upper" type="__jbhyloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbktFoGEeS2WoXr83SnEA" name="closure" type="__jbhMloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__jbktVoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__jbktloGEeS2WoXr83SnEA" name="lambda" type="__jbf-loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkt1oGEeS2WoXr83SnEA" name="i" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkuFoGEeS2WoXr83SnEA" name="collectNested" type="__jbhTVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__jbkuVoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="__jbkuloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbku1oGEeS2WoXr83SnEA" parameteredElement="__jbkvFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkvFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbku1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgiVoGEeS2WoXr83SnEA __jbhDVoGEeS2WoXr83SnEA __jbhT1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkvVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf-1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkvloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkv1oGEeS2WoXr83SnEA" name="collect" type="__jbhUFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__jbkwFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbkwVoGEeS2WoXr83SnEA" parameteredElement="__jbkwloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbkwloGEeS2WoXr83SnEA" name="V" templateParameter="__jbkwVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgjFoGEeS2WoXr83SnEA __jbhEFoGEeS2WoXr83SnEA __jbhUloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbkw1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbf_FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkxFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkxVoGEeS2WoXr83SnEA" name="reject" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__jbkxloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__jbkx1oGEeS2WoXr83SnEA" name="lambda" type="__jbf-FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkyFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkyVoGEeS2WoXr83SnEA" name="select" type="__jbkfVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__jbkyloGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+ <ownedParameter xmi:id="__jbky1oGEeS2WoXr83SnEA" name="lambda" type="__jbf-FoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbkzFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbkzVoGEeS2WoXr83SnEA" name="sortedBy" type="__jbkfVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__jbkzloGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="__jbkz1oGEeS2WoXr83SnEA" name="lambda" type="__jbf-VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbk0FoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbkgFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbk0VoGEeS2WoXr83SnEA" name="Set" superClass="__jbhpFoGEeS2WoXr83SnEA" typedElement="__jbk1VoGEeS2WoXr83SnEA __jbk3VoGEeS2WoXr83SnEA __jbk4FoGEeS2WoXr83SnEA __jbk6FoGEeS2WoXr83SnEA __jbk61oGEeS2WoXr83SnEA __jbk-FoGEeS2WoXr83SnEA __jblCVoGEeS2WoXr83SnEA __jblDVoGEeS2WoXr83SnEA"
+ elementType="__jbk1FoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jbk0loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk01oGEeS2WoXr83SnEA" parameteredElement="__jbk1FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk1FoGEeS2WoXr83SnEA" name="T" templateParameter="__jbk01oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgqloGEeS2WoXr83SnEA __jbhH1oGEeS2WoXr83SnEA __jbhN1oGEeS2WoXr83SnEA __jbhploGEeS2WoXr83SnEA"
+ typedElement="__jbk6loGEeS2WoXr83SnEA __jbk-1oGEeS2WoXr83SnEA __jblAloGEeS2WoXr83SnEA __jblCFoGEeS2WoXr83SnEA __jblDFoGEeS2WoXr83SnEA __jblEFoGEeS2WoXr83SnEA __jblFFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblPloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbla1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbldFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblhloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblmFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbloVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblqloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhXloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhYVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhZFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhZ1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhaloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhbVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhcFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhc1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhdloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmCloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmDVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmEFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmE1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmFloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmGVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmHFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfMVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfNFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfN1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfOloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfPVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__jblPVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblRloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblT1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblWFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblYVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblaloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblc1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblhVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jbljloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jbll1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jbloFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblqVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhXVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhYFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhY1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhZloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhaVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhbFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhb1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhcloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhdVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmCVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmDFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmD1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmEloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmFVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmGFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmG1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfMFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfM1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfNloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfOVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfPFoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__jbk1VoGEeS2WoXr83SnEA" name="-" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbk1loGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__jbk11oGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk2FoGEeS2WoXr83SnEA" name="<>" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="__jbk2VoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk2loGEeS2WoXr83SnEA" name="=" type="__jbhrFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="__jblMFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jbk21oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+ <ownedParameter xmi:id="__jbk3FoGEeS2WoXr83SnEA" name="object2" type="__jbj8loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk3VoGEeS2WoXr83SnEA" name="excluding" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="__jbk3loGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+ <ownedParameter xmi:id="__jbk31oGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk4FoGEeS2WoXr83SnEA" name="excludingAll" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="__jbk4VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="__jbk4loGEeS2WoXr83SnEA" name="objects" type="__jbgaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk41oGEeS2WoXr83SnEA" name="flatten" type="__jbha1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="__jbk5FoGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].
If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="__jbk5VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk5loGEeS2WoXr83SnEA" parameteredElement="__jbk51oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk51oGEeS2WoXr83SnEA" name="T2" templateParameter="__jbk5loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgoVoGEeS2WoXr83SnEA __jbhbVoGEeS2WoXr83SnEA __jbhnVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk6FoGEeS2WoXr83SnEA" name="including" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="__jbk6VoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="__jbk6loGEeS2WoXr83SnEA" name="object" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk61oGEeS2WoXr83SnEA" name="includingAll" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="__jbk7FoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="__jbk7VoGEeS2WoXr83SnEA" name="objects" type="__jbgqFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk7loGEeS2WoXr83SnEA" name="selectByKind" type="__jbhbloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="__jbk71oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk8FoGEeS2WoXr83SnEA" parameteredElement="__jbk8VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk8VoGEeS2WoXr83SnEA" name="TT" templateParameter="__jbk8FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgpFoGEeS2WoXr83SnEA __jbg5loGEeS2WoXr83SnEA __jbhcFoGEeS2WoXr83SnEA __jbhoFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbk8loGEeS2WoXr83SnEA" name="type" type="__jbg5FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jbk81oGEeS2WoXr83SnEA" name="selectByType" type="__jbhcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="__jbk9FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk9VoGEeS2WoXr83SnEA" parameteredElement="__jbk9loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jbk9loGEeS2WoXr83SnEA" name="TT" templateParameter="__jbk9VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgp1oGEeS2WoXr83SnEA __jbg6VoGEeS2WoXr83SnEA __jbhc1oGEeS2WoXr83SnEA __jbho1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jbk91oGEeS2WoXr83SnEA" name="type" type="__jbg51oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbk-FoGEeS2WoXr83SnEA" name="closure" type="__jbk0VoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="__jbk-VoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="__jbk-loGEeS2WoXr83SnEA" name="lambda" type="__jbf_1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jbk-1oGEeS2WoXr83SnEA" name="i" type="__jbk1FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jbk_FoGEeS2WoXr83SnEA" name="collectNested" type="__jbgIVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="__jbk_VoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="__jbk_loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jbk_1oGEeS2WoXr83SnEA" parameteredElement="__jblAFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jblAFoGEeS2WoXr83SnEA" name="V" templateParameter="__jbk_1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgI1oGEeS2WoXr83SnEA __jbgm1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jblAVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbgAFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jblAloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblA1oGEeS2WoXr83SnEA" name="collect" type="__jbgJFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="__jblBFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jblBVoGEeS2WoXr83SnEA" parameteredElement="__jblBloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jblBloGEeS2WoXr83SnEA" name="V" templateParameter="__jblBVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgJloGEeS2WoXr83SnEA __jbgnloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="__jblB1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="__jbgAVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jblCFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblCVoGEeS2WoXr83SnEA" name="reject" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="__jblCloGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="__jblC1oGEeS2WoXr83SnEA" name="lambda" type="__jbf_VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jblDFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblDVoGEeS2WoXr83SnEA" name="select" type="__jbk0VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="__jblDloGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+ <ownedParameter xmi:id="__jblD1oGEeS2WoXr83SnEA" name="lambda" type="__jbf_VoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jblEFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblEVoGEeS2WoXr83SnEA" name="sortedBy" type="__jbhNVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__jblEloGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__jblE1oGEeS2WoXr83SnEA" name="lambda" type="__jbf_loGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jblFFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jbk1FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblFVoGEeS2WoXr83SnEA" name="State" superClass="__jbj9FoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblFloGEeS2WoXr83SnEA" name="Type" superClass="__jbkAloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblF1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbgq1oGEeS2WoXr83SnEA"
+ typedElement="__jblG1oGEeS2WoXr83SnEA __jblJloGEeS2WoXr83SnEA" elementType="__jblGloGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="__jblGFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="__jblGVoGEeS2WoXr83SnEA" parameteredElement="__jblGloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="__jblGloGEeS2WoXr83SnEA" name="T" templateParameter="__jblGVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="__jbgrVoGEeS2WoXr83SnEA __jbhIloGEeS2WoXr83SnEA __jbhOloGEeS2WoXr83SnEA __jbhdloGEeS2WoXr83SnEA __jbhqVoGEeS2WoXr83SnEA"
+ typedElement="__jblKloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblO1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblcVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblg1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbljFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbllVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblnloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblp1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbheVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhfFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhf1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhgloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhhVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhiFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhi1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhjloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhkVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhlFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhl1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhmloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhnVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhoFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbho1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhploGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbhqVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmH1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmIloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmJVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmKFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmK1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmLloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqMM.xml#__jbmMVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfQFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfQ1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfRloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfSVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="StmcMM.xml#__jbfTFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="orphanage.xml#__jblOloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblQ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblTFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblVVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblXloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblZ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblcFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblgloGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jbli1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jbllFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblnVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="orphanage.xml#__jblploGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbheFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhe1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhfloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhgVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhhFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhh1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhiloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhjVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhkFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhk1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhlloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhmVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhnFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhn1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbholoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhpVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#__jbhqFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmHloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmIVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmJFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmJ1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmKloGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmLVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="SeqMM.xml#__jbmMFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfP1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfQloGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfRVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfSFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="StmcMM.xml#__jbfS1oGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="__jblG1oGEeS2WoXr83SnEA" name="-" type="__jblF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="__jblLloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="__jblHFoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="__jblHVoGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jblHloGEeS2WoXr83SnEA" name="intersection" type="__jbhdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="__jblH1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+ <ownedParameter xmi:id="__jblIFoGEeS2WoXr83SnEA" name="c" type="__jbgq1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jblIVoGEeS2WoXr83SnEA" name="symmetricDifference" type="__jbhdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+ <ownedComment xmi:id="__jblIloGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+ <ownedParameter xmi:id="__jblI1oGEeS2WoXr83SnEA" name="s" type="__jbhg1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="__jblJFoGEeS2WoXr83SnEA" name="union" type="__jbhdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="__jblJVoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+ <ownedParameter xmi:id="__jblJloGEeS2WoXr83SnEA" name="s" type="__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="__jblJ1oGEeS2WoXr83SnEA" name="sortedBy" type="__jbhOFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="__jblKFoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="__jblKVoGEeS2WoXr83SnEA" name="lambda" type="__jbgAloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="__jblKloGEeS2WoXr83SnEA" name="i" isRequired="false" type="__jblGloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedPrecedence xmi:id="__jblK1oGEeS2WoXr83SnEA" name="NAVIGATION"/>
+ <ownedPrecedence xmi:id="__jblLFoGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+ <ownedPrecedence xmi:id="__jblLVoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+ <ownedPrecedence xmi:id="__jblLloGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+ <ownedPrecedence xmi:id="__jblL1oGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+ <ownedPrecedence xmi:id="__jblMFoGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+ <ownedPrecedence xmi:id="__jblMVoGEeS2WoXr83SnEA" name="AND" order="6"/>
+ <ownedPrecedence xmi:id="__jblMloGEeS2WoXr83SnEA" name="OR" order="7"/>
+ <ownedPrecedence xmi:id="__jblM1oGEeS2WoXr83SnEA" name="XOR" order="8"/>
+ <ownedPrecedence xmi:id="__jblNFoGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.xml
new file mode 100644
index 0000000..73cced5
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.xml
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__jblt1oGEeS2WoXr83SnEA" name="SeqMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqMM.emof">
+ <nestedPackage xmi:id="__jbluFoGEeS2WoXr83SnEA" name="SeqMM_CT" nsURI="SeqMM_CT">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbluVoGEeS2WoXr83SnEA" name="Class">
+ <templateParameterSubstitution href="orphanage.xml#__jblQVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblRFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblR1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbl9VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmCloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmH1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbluloGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfWloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jblu1oGEeS2WoXr83SnEA" name="object" type="__jbmF1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl4FoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblvFoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jblvVoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jblv1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfWVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbl4FoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblvVoGEeS2WoXr83SnEA" name="Dummy" typedElement="__jblvFoGEeS2WoXr83SnEA __jblx1oGEeS2WoXr83SnEA __jbl51oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__jblvloGEeS2WoXr83SnEA" name="containedState" type="__jbmGloGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl51oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblv1oGEeS2WoXr83SnEA" name="hasClass" type="__jbmCFoGEeS2WoXr83SnEA" isComposite="true" opposite="__jblvFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblwFoGEeS2WoXr83SnEA" name="hasInteraction" type="__jbmC1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jblx1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblwVoGEeS2WoXr83SnEA" name="Event">
+ <ownedAttribute xmi:id="__jblwloGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfdVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfq1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblw1oGEeS2WoXr83SnEA" name="Interaction" typedElement="__jblyloGEeS2WoXr83SnEA __jbl0VoGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__jblbloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblcVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbldFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbl-FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmDVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmIloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblxFoGEeS2WoXr83SnEA" name="lifeline" type="__jbmDloGEeS2WoXr83SnEA" isComposite="true" opposite="__jblyloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblxVoGEeS2WoXr83SnEA" name="message" type="__jbmFFoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl0VoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblxloGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jblx1oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jblvVoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jblwFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblyFoGEeS2WoXr83SnEA" name="LifeLine">
+ <templateParameterSubstitution href="orphanage.xml#__jblU1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblVloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblWVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblfVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbl7FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbl-1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmEFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmJVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblyVoGEeS2WoXr83SnEA" name="event" type="__jbmEVoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbl1FoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbfcloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jblyloGEeS2WoXr83SnEA" name="interaction" type="__jblw1oGEeS2WoXr83SnEA" opposite="__jblxFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbly1oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jblzFoGEeS2WoXr83SnEA" name="object" type="__jbl31oGEeS2WoXr83SnEA" opposite="__jbl4VoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbfVloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jblzVoGEeS2WoXr83SnEA" name="state" type="__jbmGloGEeS2WoXr83SnEA" opposite="__jbl6FoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jblzloGEeS2WoXr83SnEA" name="State" type="__jbl8FoGEeS2WoXr83SnEA" implicit="true" opposite="__jbl5FoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfVVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfbFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfcVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfhloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbl1FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbl4VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jblz1oGEeS2WoXr83SnEA" name="Message" typedElement="__jbl1VoGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__jblOFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblO1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblPloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmAVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmFloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmK1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl0FoGEeS2WoXr83SnEA" name="event" type="__jbmEVoGEeS2WoXr83SnEA" opposite="__jbl1VoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl0VoGEeS2WoXr83SnEA" name="interaction" type="__jblw1oGEeS2WoXr83SnEA" opposite="__jblxVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl0loGEeS2WoXr83SnEA" name="messageId">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbl01oGEeS2WoXr83SnEA" name="MessageEvent" superClass="__jblwVoGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__jblXFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblYloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbld1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbls1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbltloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStmc.xml#__jbf3VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStmc.xml#__jbf4FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="SeqToStmc.xml#__jbf41oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbl71oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbl_loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmE1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmKFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl1FoGEeS2WoXr83SnEA" name="lifeline" type="__jblyFoGEeS2WoXr83SnEA" opposite="__jblyVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl1VoGEeS2WoXr83SnEA" name="message" type="__jblz1oGEeS2WoXr83SnEA" opposite="__jbl0FoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl1loGEeS2WoXr83SnEA" name="next" type="__jbl01oGEeS2WoXr83SnEA" opposite="__jbl21oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl11oGEeS2WoXr83SnEA" name="prev" type="__jbl01oGEeS2WoXr83SnEA" opposite="__jbl2loGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl2FoGEeS2WoXr83SnEA" name="state" type="__jbl41oGEeS2WoXr83SnEA" opposite="__jbl5VoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl2VoGEeS2WoXr83SnEA" name="type" type="__jbl3FoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl2loGEeS2WoXr83SnEA" name="MessageEvent" type="__jbl7VoGEeS2WoXr83SnEA" implicit="true" opposite="__jbl11oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl21oGEeS2WoXr83SnEA" name="MessageEvent" type="__jbl7VoGEeS2WoXr83SnEA" implicit="true" opposite="__jbl1loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfdFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfiFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfqloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfu1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbl1loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbl11oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Enumeration" xmi:id="__jbl3FoGEeS2WoXr83SnEA" name="MessageEventType" typedElement="__jbl2VoGEeS2WoXr83SnEA">
+ <superClass href="OCL.xml#__jbjaloGEeS2WoXr83SnEA"/>
+ <ownedLiteral xmi:id="__jbl3VoGEeS2WoXr83SnEA" name="Send"/>
+ <ownedLiteral xmi:id="__jbl3loGEeS2WoXr83SnEA" name="Receive"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbl31oGEeS2WoXr83SnEA" name="Object">
+ <templateParameterSubstitution href="orphanage.xml#__jblSloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblTVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblUFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmBFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmGVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmLloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl4FoGEeS2WoXr83SnEA" name="class" type="__jbluVoGEeS2WoXr83SnEA" opposite="__jblu1oGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbfWFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbl4VoGEeS2WoXr83SnEA" name="lifeline" type="__jblyFoGEeS2WoXr83SnEA" opposite="__jblzFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl4loGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfV1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jblzFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbl41oGEeS2WoXr83SnEA" name="State" typedElement="__jbl2FoGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__jblZVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblaFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbla1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbleloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbl8loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmB1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmHFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbmMVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl5FoGEeS2WoXr83SnEA" name="lifeline" type="__jbmDloGEeS2WoXr83SnEA" opposite="__jblzloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl5VoGEeS2WoXr83SnEA" name="messageevent" type="__jbmEVoGEeS2WoXr83SnEA" opposite="__jbl2FoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl5loGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbl51oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jblvVoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jblvloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbl6FoGEeS2WoXr83SnEA" name="LifeLine" type="__jbl6loGEeS2WoXr83SnEA" implicit="true" opposite="__jblzVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="__jbl6VoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbl6loGEeS2WoXr83SnEA" name="Bag" superClass="__jbl-VoGEeS2WoXr83SnEA" typedElement="__jbl6FoGEeS2WoXr83SnEA"
+ elementType="__jblyFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbl61oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbl7FoGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbl7VoGEeS2WoXr83SnEA" name="Bag" superClass="__jbl_FoGEeS2WoXr83SnEA" typedElement="__jbl2loGEeS2WoXr83SnEA __jbl21oGEeS2WoXr83SnEA"
+ elementType="__jbl01oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbl7loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbl71oGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbl8FoGEeS2WoXr83SnEA" name="Bag" superClass="__jbmBVoGEeS2WoXr83SnEA" typedElement="__jblzloGEeS2WoXr83SnEA"
+ elementType="__jbl41oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbl8VoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbl8loGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl81oGEeS2WoXr83SnEA" name="Collection" elementType="__jbluVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbl9FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbl9VoGEeS2WoXr83SnEA" actual="__jbluVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl9loGEeS2WoXr83SnEA" name="Collection" elementType="__jblw1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbl91oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbl-FoGEeS2WoXr83SnEA" actual="__jblw1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl-VoGEeS2WoXr83SnEA" name="Collection" elementType="__jblyFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbl-loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbl-1oGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl_FoGEeS2WoXr83SnEA" name="Collection" elementType="__jbl01oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbl_VoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbl_loGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbl_1oGEeS2WoXr83SnEA" name="Collection" elementType="__jblz1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmAFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmAVoGEeS2WoXr83SnEA" actual="__jblz1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmAloGEeS2WoXr83SnEA" name="Collection" elementType="__jbl31oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmA1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmBFoGEeS2WoXr83SnEA" actual="__jbl31oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmBVoGEeS2WoXr83SnEA" name="Collection" elementType="__jbl41oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmBloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmB1oGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmCFoGEeS2WoXr83SnEA" name="Set" superClass="__jbmHVoGEeS2WoXr83SnEA" typedElement="__jblv1oGEeS2WoXr83SnEA"
+ elementType="__jbluVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbmCVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmCloGEeS2WoXr83SnEA" actual="__jbluVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmC1oGEeS2WoXr83SnEA" name="Set" superClass="__jbmIFoGEeS2WoXr83SnEA" typedElement="__jblwFoGEeS2WoXr83SnEA"
+ elementType="__jblw1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbmDFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmDVoGEeS2WoXr83SnEA" actual="__jblw1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmDloGEeS2WoXr83SnEA" name="Set" superClass="__jbmI1oGEeS2WoXr83SnEA" typedElement="__jblxFoGEeS2WoXr83SnEA __jbl5FoGEeS2WoXr83SnEA"
+ elementType="__jblyFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbmD1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmEFoGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmEVoGEeS2WoXr83SnEA" name="Set" superClass="__jbmJloGEeS2WoXr83SnEA" typedElement="__jblyVoGEeS2WoXr83SnEA __jbl0FoGEeS2WoXr83SnEA __jbl5VoGEeS2WoXr83SnEA"
+ elementType="__jbl01oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbmEloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmE1oGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmFFoGEeS2WoXr83SnEA" name="Set" superClass="__jbmKVoGEeS2WoXr83SnEA" typedElement="__jblxVoGEeS2WoXr83SnEA"
+ elementType="__jblz1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbmFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmFloGEeS2WoXr83SnEA" actual="__jblz1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmF1oGEeS2WoXr83SnEA" name="Set" superClass="__jbmLFoGEeS2WoXr83SnEA" typedElement="__jblu1oGEeS2WoXr83SnEA"
+ elementType="__jbl31oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbmGFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmGVoGEeS2WoXr83SnEA" actual="__jbl31oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbmGloGEeS2WoXr83SnEA" name="Set" superClass="__jbmL1oGEeS2WoXr83SnEA" typedElement="__jblvloGEeS2WoXr83SnEA __jblzVoGEeS2WoXr83SnEA"
+ elementType="__jbl41oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbmG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmHFoGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmHVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl81oGEeS2WoXr83SnEA"
+ elementType="__jbluVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmHloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmH1oGEeS2WoXr83SnEA" actual="__jbluVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmIFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl9loGEeS2WoXr83SnEA"
+ elementType="__jblw1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmIVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmIloGEeS2WoXr83SnEA" actual="__jblw1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmI1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl-VoGEeS2WoXr83SnEA"
+ elementType="__jblyFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmJFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmJVoGEeS2WoXr83SnEA" actual="__jblyFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmJloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl_FoGEeS2WoXr83SnEA"
+ elementType="__jbl01oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmJ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmKFoGEeS2WoXr83SnEA" actual="__jbl01oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmKVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbl_1oGEeS2WoXr83SnEA"
+ elementType="__jblz1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmKloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmK1oGEeS2WoXr83SnEA" actual="__jblz1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmLFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbmAloGEeS2WoXr83SnEA"
+ elementType="__jbl31oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmLloGEeS2WoXr83SnEA" actual="__jbl31oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbmL1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbmBVoGEeS2WoXr83SnEA"
+ elementType="__jbl41oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbmMFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbmMVoGEeS2WoXr83SnEA" actual="__jbl41oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.xml
new file mode 100644
index 0000000..f7dde3f
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.xml
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__jbfTVoGEeS2WoXr83SnEA" name="SeqToStmc.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/SeqToStmc.qvtr">
+ <ownedComment xmi:id="__jbfTloGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="__jbfT1oGEeS2WoXr83SnEA" name="SeqToStmc">
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <modelParameter xmi:id="__jbfUFoGEeS2WoXr83SnEA" name="seqDgm">
+ <usedPackage href="SeqMM.xml#__jbluFoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <modelParameter xmi:id="__jbfUVoGEeS2WoXr83SnEA" name="stmc">
+ <usedPackage href="StmcMM.xml#__jbe8VoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfUloGEeS2WoXr83SnEA" name="LifeLineToStateMachine" isTopLevel="true">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfU1oGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+ rootVariable="__jbfZFoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfVFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfVVoGEeS2WoXr83SnEA" bindsTo="__jbfZFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfVloGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__jblzFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfV1oGEeS2WoXr83SnEA" bindsTo="__jbfZVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfWFoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__jbl4FoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfWVoGEeS2WoXr83SnEA" bindsTo="__jbfZloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfWloGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__jbluloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfW1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfY1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfXFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+ rootVariable="__jbfZ1oGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfXVoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfXloGEeS2WoXr83SnEA" bindsTo="__jbfZ1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfX1oGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfDVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfYFoGEeS2WoXr83SnEA" bindsTo="__jbfaFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfYVoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbe9loGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfYloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfY1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__jbfY1oGEeS2WoXr83SnEA" name="cn" isRequired="false">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfZFoGEeS2WoXr83SnEA" name="l" templateExp="__jbfVVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfZVoGEeS2WoXr83SnEA" name="o" templateExp="__jbfV1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfZloGEeS2WoXr83SnEA" name="c1" templateExp="__jbfWVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfZ1oGEeS2WoXr83SnEA" name="s" templateExp="__jbfXloGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfaFoGEeS2WoXr83SnEA" name="c2" templateExp="__jbfYFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="__jbfaVoGEeS2WoXr83SnEA">
+ <predicate xmi:id="__jbfaloGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfa1oGEeS2WoXr83SnEA" referredRelation="__jbfbloGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfbFoGEeS2WoXr83SnEA" referredVariable="__jbfZFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfbVoGEeS2WoXr83SnEA" referredVariable="__jbfZ1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfbloGEeS2WoXr83SnEA" name="LLEventSeqToSMStatePath" relationCallExp="__jbfa1oGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfb1oGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+ rootVariable="__jbfhloGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfcFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfcVoGEeS2WoXr83SnEA" bindsTo="__jbfhloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfcloGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__jblyVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbfc1oGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" bindsTo="__jbfh1oGEeS2WoXr83SnEA">
+ <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfdFoGEeS2WoXr83SnEA" bindsTo="__jbfiFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfdVoGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__jblwloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfdloGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfhFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </member>
+ <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfd1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+ rootVariable="__jbfiVoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfeFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfeVoGEeS2WoXr83SnEA" bindsTo="__jbfiVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfeloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfDloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfe1oGEeS2WoXr83SnEA" bindsTo="__jbfiloGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbffFoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfCVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbffVoGEeS2WoXr83SnEA" bindsTo="__jbfi1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbffloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfE1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbff1oGEeS2WoXr83SnEA" bindsTo="__jbfjFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfgFoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbe_loGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfgVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfhFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__jbfgloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfGFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfg1oGEeS2WoXr83SnEA" bindsTo="__jbfjVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__jbfhFoGEeS2WoXr83SnEA" name="en" isRequired="false">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfhVoGEeS2WoXr83SnEA" name="restEvSeq" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbfhloGEeS2WoXr83SnEA" name="ll" templateExp="__jbfcVoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfh1oGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbfc1oGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbfiFoGEeS2WoXr83SnEA" name="e1" templateExp="__jbfdFoGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfiVoGEeS2WoXr83SnEA" name="sm" templateExp="__jbfeVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfiloGEeS2WoXr83SnEA" name="s1" templateExp="__jbfe1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfi1oGEeS2WoXr83SnEA" name="tr" templateExp="__jbffVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfjFoGEeS2WoXr83SnEA" name="e" templateExp="__jbff1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfjVoGEeS2WoXr83SnEA" name="s2" templateExp="__jbfg1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="__jbfjloGEeS2WoXr83SnEA">
+ <predicate xmi:id="__jbfj1oGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfkFoGEeS2WoXr83SnEA" referredRelation="__jbfk1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfkVoGEeS2WoXr83SnEA" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"
+ referredVariable="__jbfhVoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfkloGEeS2WoXr83SnEA" referredVariable="__jbfjVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfk1oGEeS2WoXr83SnEA" name="EventSeqToStatePath" relationCallExp="__jbfkFoGEeS2WoXr83SnEA __jbfwloGEeS2WoXr83SnEA __jbf11oGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbflFoGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+ rootVariable="__jbfmloGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbflVoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbflloGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA"
+ bindsTo="__jbfmloGEeS2WoXr83SnEA" rest="__jbfm1oGEeS2WoXr83SnEA">
+ <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfl1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+ rootVariable="__jbfnFoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfmFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfmVoGEeS2WoXr83SnEA" bindsTo="__jbfnFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__jbfmloGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbflloGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbfm1oGEeS2WoXr83SnEA" implicit="true" matchingExp="__jbflloGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbfnFoGEeS2WoXr83SnEA" name="fs" templateExp="__jbfmVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="__jbfnVoGEeS2WoXr83SnEA">
+ <predicate xmi:id="__jbfnloGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="__jbfn1oGEeS2WoXr83SnEA" name="or" isRequired="false">
+ <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfoFoGEeS2WoXr83SnEA" referredRelation="__jbfploGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfoVoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" referredVariable="__jbfmloGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfoloGEeS2WoXr83SnEA" referredVariable="__jbfnFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </argument>
+ </source>
+ <argument xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfo1oGEeS2WoXr83SnEA" referredRelation="__jbfxVoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfpFoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" referredVariable="__jbfmloGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfpVoGEeS2WoXr83SnEA" referredVariable="__jbfnFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </argument>
+ </argument>
+ <referredOperation href="OCL.xml#__jbhwFoGEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfploGEeS2WoXr83SnEA" name="EventSeqToStatePathImm" relationCallExp="__jbfoFoGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfp1oGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+ rootVariable="__jbfuloGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfqFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbfqVoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA"
+ bindsTo="__jbfuloGEeS2WoXr83SnEA">
+ <member xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfqloGEeS2WoXr83SnEA" bindsTo="__jbfu1oGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfq1oGEeS2WoXr83SnEA">
+ <referredProperty href="SeqMM.xml#__jblwloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfrFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfuFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </member>
+ <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfrVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+ rootVariable="__jbfvFoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfrloGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfr1oGEeS2WoXr83SnEA" bindsTo="__jbfvFoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfsFoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfCVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfsVoGEeS2WoXr83SnEA" bindsTo="__jbfvVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfsloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfE1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfs1oGEeS2WoXr83SnEA" bindsTo="__jbfvloGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbftFoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbe_loGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="__jbftVoGEeS2WoXr83SnEA" isRequired="false" referredVariable="__jbfuFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="__jbftloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfGFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbft1oGEeS2WoXr83SnEA" bindsTo="__jbfv1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__jbfuFoGEeS2WoXr83SnEA" name="en" isRequired="false">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfuVoGEeS2WoXr83SnEA" name="restEvSeq" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbfuloGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbfqVoGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbfu1oGEeS2WoXr83SnEA" name="e1" templateExp="__jbfqloGEeS2WoXr83SnEA">
+ <type href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfvFoGEeS2WoXr83SnEA" name="fs" templateExp="__jbfr1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfvVoGEeS2WoXr83SnEA" name="tr" templateExp="__jbfsVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfvloGEeS2WoXr83SnEA" name="e2" templateExp="__jbfs1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbe_VoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbfv1oGEeS2WoXr83SnEA" name="ts" templateExp="__jbft1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="__jbfwFoGEeS2WoXr83SnEA">
+ <predicate xmi:id="__jbfwVoGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbfwloGEeS2WoXr83SnEA" referredRelation="__jbfk1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfw1oGEeS2WoXr83SnEA" isRequired="false" type="__jbf4VoGEeS2WoXr83SnEA"
+ referredVariable="__jbfuVoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbfxFoGEeS2WoXr83SnEA" referredVariable="__jbfv1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="__jbfxVoGEeS2WoXr83SnEA" name="EventSeqToStatePathTrans" relationCallExp="__jbfo1oGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfxloGEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="__jbfUFoGEeS2WoXr83SnEA"
+ rootVariable="__jbf0FoGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfx1oGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:CollectionTemplateExp" xmi:id="__jbfyFoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA"
+ bindsTo="__jbf0FoGEeS2WoXr83SnEA" rest="__jbf0VoGEeS2WoXr83SnEA">
+ <referredCollectionType href="orphanage.xml#__jbltFoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="__jbfyVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="__jbfUVoGEeS2WoXr83SnEA"
+ rootVariable="__jbf0loGEeS2WoXr83SnEA">
+ <pattern xmi:id="__jbfyloGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfy1oGEeS2WoXr83SnEA" bindsTo="__jbf0loGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfzFoGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfCVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfzVoGEeS2WoXr83SnEA" bindsTo="__jbf01oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ <part xmi:id="__jbfzloGEeS2WoXr83SnEA">
+ <referredProperty href="StmcMM.xml#__jbfGFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="__jbfz1oGEeS2WoXr83SnEA" bindsTo="__jbf1FoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="__jbf0FoGEeS2WoXr83SnEA" name="es" type="__jbf4VoGEeS2WoXr83SnEA" templateExp="__jbfyFoGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbf0VoGEeS2WoXr83SnEA" implicit="true" matchingExp="__jbfyFoGEeS2WoXr83SnEA"/>
+ <variable xmi:id="__jbf0loGEeS2WoXr83SnEA" name="fs" templateExp="__jbfy1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbf01oGEeS2WoXr83SnEA" name="tr" templateExp="__jbfzVoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="__jbf1FoGEeS2WoXr83SnEA" name="ts" templateExp="__jbfz1oGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="__jbf1VoGEeS2WoXr83SnEA">
+ <predicate xmi:id="__jbf1loGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="__jbf11oGEeS2WoXr83SnEA" referredRelation="__jbfk1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#__jbhrFoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbf2FoGEeS2WoXr83SnEA" type="__jbf4VoGEeS2WoXr83SnEA" referredVariable="__jbf0FoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="__jbf2VoGEeS2WoXr83SnEA" referredVariable="__jbf1FoGEeS2WoXr83SnEA">
+ <type href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ </nestedPackage>
+ <nestedPackage xmi:id="__jbf2loGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbf21oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jbf3FoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbf3VoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbf3loGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__jbf21oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbf31oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbf4FoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbkHFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbkG1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbkGloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbf4VoGEeS2WoXr83SnEA" name="Sequence" superClass="__jbf3loGEeS2WoXr83SnEA"
+ typedElement="__jbfc1oGEeS2WoXr83SnEA __jbfhVoGEeS2WoXr83SnEA __jbfh1oGEeS2WoXr83SnEA __jbfkVoGEeS2WoXr83SnEA __jbflloGEeS2WoXr83SnEA __jbfmloGEeS2WoXr83SnEA __jbfoVoGEeS2WoXr83SnEA __jbfpFoGEeS2WoXr83SnEA __jbfqVoGEeS2WoXr83SnEA __jbfuVoGEeS2WoXr83SnEA __jbfuloGEeS2WoXr83SnEA __jbfw1oGEeS2WoXr83SnEA __jbfyFoGEeS2WoXr83SnEA __jbf0FoGEeS2WoXr83SnEA __jbf2FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbf4loGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbf41oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbkf1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbkfloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SequenceType" href="OCL.xml#__jbkfVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <unit xmi:id="__jbf5FoGEeS2WoXr83SnEA" name="SeqMM">
+ <ownedComment xmi:id="__jbf5VoGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <usedPackage xmi:type="flatemofqvt:Package" href="SeqMM.xml#__jbluFoGEeS2WoXr83SnEA"/>
+ </unit>
+ <unit xmi:id="__jbf5loGEeS2WoXr83SnEA" name="StmcMM">
+ <usedPackage xmi:type="flatemofqvt:Package" href="StmcMM.xml#__jbe8VoGEeS2WoXr83SnEA"/>
+ </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.xml
new file mode 100644
index 0000000..1e5ce90
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.xml
@@ -0,0 +1,352 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__jbe8FoGEeS2WoXr83SnEA" name="StmcMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/StmcMM.emof">
+ <nestedPackage xmi:id="__jbe8VoGEeS2WoXr83SnEA" name="StmcMM" nsURI="StmcMM">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe8loGEeS2WoXr83SnEA" name="Action" typedElement="__jbfEloGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__jbe81oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbe9FoGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__jbfEVoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jbfEloGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe9VoGEeS2WoXr83SnEA" name="Class">
+ <templateParameterSubstitution href="orphanage.xml#__jblm1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblnloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbloVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfH1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfMVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfQFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbe9loGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfYVoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbe91oGEeS2WoXr83SnEA" name="stateMachine" type="__jbfNVoGEeS2WoXr83SnEA" opposite="__jbfDVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbe-FoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jbe-VoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jbe_FoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfYFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfaFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbfDVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe-VoGEeS2WoXr83SnEA" name="Dummy" typedElement="__jbe-FoGEeS2WoXr83SnEA __jbfAloGEeS2WoXr83SnEA __jbfEFoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="__jbe-loGEeS2WoXr83SnEA" name="containsMessage" type="__jbfMloGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfAloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbe-1oGEeS2WoXr83SnEA" name="containsStateMachine" type="__jbfNVoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfEFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbe_FoGEeS2WoXr83SnEA" name="hasClass" type="__jbfL1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jbe-FoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbe_VoGEeS2WoXr83SnEA" name="Event">
+ <ownedAttribute xmi:id="__jbe_loGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfgFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbftFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbe_1oGEeS2WoXr83SnEA" name="Transition" isRequired="false" type="__jbfEVoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jbfE1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbff1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfjFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfs1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfvloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbfE1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfAFoGEeS2WoXr83SnEA" name="Message" typedElement="__jbfBVoGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__jbliVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbljFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfIloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfNFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfQ1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfAVoGEeS2WoXr83SnEA" name="messageId">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfAloGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jbe-VoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jbe-loGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfA1oGEeS2WoXr83SnEA" name="SendMsg" type="__jbfGloGEeS2WoXr83SnEA" implicit="true" opposite="__jbfBVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfBFoGEeS2WoXr83SnEA" name="SendMsg" superClass="__jbe8loGEeS2WoXr83SnEA">
+ <templateParameterSubstitution href="orphanage.xml#__jblrVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblsFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfHFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfJVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfBVoGEeS2WoXr83SnEA" name="message" type="__jbfAFoGEeS2WoXr83SnEA" opposite="__jbfA1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfBloGEeS2WoXr83SnEA" name="State">
+ <templateParameterSubstitution href="orphanage.xml#__jblpFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblp1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblqloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfK1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfOloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfSVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfB1oGEeS2WoXr83SnEA" name="inTransition" type="__jbfO1oGEeS2WoXr83SnEA" opposite="__jbfGFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfCFoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfCVoGEeS2WoXr83SnEA" name="outTransition" type="__jbfO1oGEeS2WoXr83SnEA" opposite="__jbfFFoGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbffFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfsFoGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfzFoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfCloGEeS2WoXr83SnEA" name="owner" type="__jbfC1oGEeS2WoXr83SnEA" opposite="__jbfDloGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfe1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfg1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfiloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfjVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfkloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfmVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfnFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfoloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfpVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfr1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbft1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfvFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfv1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfxFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfy1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfz1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbf0loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbf1FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbf2VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbfFFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbfGFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfC1oGEeS2WoXr83SnEA" name="StateMachine">
+ <templateParameterSubstitution href="orphanage.xml#__jblkloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jbllVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblmFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfKFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfN1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfRloGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfDFoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfDVoGEeS2WoXr83SnEA" name="owner" type="__jbe9VoGEeS2WoXr83SnEA" opposite="__jbe91oGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbfX1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfDloGEeS2WoXr83SnEA" name="state" type="__jbfOFoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfCloGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbfeloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfD1oGEeS2WoXr83SnEA" name="transition" type="__jbfO1oGEeS2WoXr83SnEA" isComposite="true" opposite="__jbfF1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfEFoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="__jbe-VoGEeS2WoXr83SnEA" implicit="true"
+ opposite="__jbe-1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfXloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfZ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="SeqToStmc.xml#__jbfbVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfeVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfiVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbfCloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbfF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="__jbfEVoGEeS2WoXr83SnEA" name="Transition">
+ <templateParameterSubstitution href="orphanage.xml#__jblgFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblg1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="orphanage.xml#__jblhloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfLloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfPVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#__jbfTFoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfEloGEeS2WoXr83SnEA" name="action" type="__jbe8loGEeS2WoXr83SnEA" isComposite="true" opposite="__jbe9FoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfE1oGEeS2WoXr83SnEA" name="event" type="__jbe_VoGEeS2WoXr83SnEA" isComposite="true" opposite="__jbe_1oGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbffloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfsloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfFFoGEeS2WoXr83SnEA" name="fromState" type="__jbfBloGEeS2WoXr83SnEA" opposite="__jbfCVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfFVoGEeS2WoXr83SnEA" name="guard">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfFloGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#__jbiHloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__jbfF1oGEeS2WoXr83SnEA" name="owner" type="__jbfC1oGEeS2WoXr83SnEA" opposite="__jbfD1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="__jbfGFoGEeS2WoXr83SnEA" name="toState" type="__jbfBloGEeS2WoXr83SnEA" opposite="__jbfB1oGEeS2WoXr83SnEA">
+ <propertyItem href="SeqToStmc.xml#__jbfgloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbftloGEeS2WoXr83SnEA"/>
+ <propertyItem href="SeqToStmc.xml#__jbfzloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#__jbjuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbffVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfi1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfsVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbfvVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="SeqToStmc.xml#__jbfzVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="SeqToStmc.xml#__jbf01oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbe9FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#__jbe_1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="__jbfGVoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbfGloGEeS2WoXr83SnEA" name="Bag" superClass="__jbfI1oGEeS2WoXr83SnEA" typedElement="__jbfA1oGEeS2WoXr83SnEA"
+ elementType="__jbfBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfG1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfHFoGEeS2WoXr83SnEA" actual="__jbfBFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfHVoGEeS2WoXr83SnEA" name="Collection" elementType="__jbe9VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfHloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfH1oGEeS2WoXr83SnEA" actual="__jbe9VoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfIFoGEeS2WoXr83SnEA" name="Collection" elementType="__jbfAFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfIVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfIloGEeS2WoXr83SnEA" actual="__jbfAFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfI1oGEeS2WoXr83SnEA" name="Collection" elementType="__jbfBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfJFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfJVoGEeS2WoXr83SnEA" actual="__jbfBFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfJloGEeS2WoXr83SnEA" name="Collection" elementType="__jbfC1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfJ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfKFoGEeS2WoXr83SnEA" actual="__jbfC1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfKVoGEeS2WoXr83SnEA" name="Collection" elementType="__jbfBloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfKloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfK1oGEeS2WoXr83SnEA" actual="__jbfBloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfLFoGEeS2WoXr83SnEA" name="Collection" elementType="__jbfEVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfLVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfLloGEeS2WoXr83SnEA" actual="__jbfEVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfL1oGEeS2WoXr83SnEA" name="Set" superClass="__jbfPloGEeS2WoXr83SnEA" typedElement="__jbe_FoGEeS2WoXr83SnEA"
+ elementType="__jbe9VoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbfMFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfMVoGEeS2WoXr83SnEA" actual="__jbe9VoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfMloGEeS2WoXr83SnEA" name="Set" superClass="__jbfQVoGEeS2WoXr83SnEA" typedElement="__jbe-loGEeS2WoXr83SnEA"
+ elementType="__jbfAFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbfM1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfNFoGEeS2WoXr83SnEA" actual="__jbfAFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfNVoGEeS2WoXr83SnEA" name="Set" superClass="__jbfRFoGEeS2WoXr83SnEA" typedElement="__jbe91oGEeS2WoXr83SnEA __jbe-1oGEeS2WoXr83SnEA"
+ elementType="__jbfC1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbfNloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfN1oGEeS2WoXr83SnEA" actual="__jbfC1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfOFoGEeS2WoXr83SnEA" name="Set" superClass="__jbfR1oGEeS2WoXr83SnEA" typedElement="__jbfDloGEeS2WoXr83SnEA"
+ elementType="__jbfBloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbfOVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfOloGEeS2WoXr83SnEA" actual="__jbfBloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbfO1oGEeS2WoXr83SnEA" name="Set" superClass="__jbfSloGEeS2WoXr83SnEA" typedElement="__jbfB1oGEeS2WoXr83SnEA __jbfCVoGEeS2WoXr83SnEA __jbfD1oGEeS2WoXr83SnEA"
+ elementType="__jbfEVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbfPFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfPVoGEeS2WoXr83SnEA" actual="__jbfEVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfPloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfHVoGEeS2WoXr83SnEA"
+ elementType="__jbe9VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfP1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfQFoGEeS2WoXr83SnEA" actual="__jbe9VoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfQVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfIFoGEeS2WoXr83SnEA"
+ elementType="__jbfAFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfQloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfQ1oGEeS2WoXr83SnEA" actual="__jbfAFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfRFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfJloGEeS2WoXr83SnEA"
+ elementType="__jbfC1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfRVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfRloGEeS2WoXr83SnEA" actual="__jbfC1oGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfR1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfKVoGEeS2WoXr83SnEA"
+ elementType="__jbfBloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfSFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfSVoGEeS2WoXr83SnEA" actual="__jbfBloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbfSloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbfLFoGEeS2WoXr83SnEA"
+ elementType="__jbfEVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbfS1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbfTFoGEeS2WoXr83SnEA" actual="__jbfEVoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/orphanage.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/orphanage.xml
new file mode 100644
index 0000000..9838215
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/SeqToStmc_CT/orphanage.xml
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Package xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="__jblNVoGEeS2WoXr83SnEA" name="$$" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblNloGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblN1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblOFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblOVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblNloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblOloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblO1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblPFoGEeS2WoXr83SnEA" name="Set" superClass="__jblOVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblPVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblPloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblz1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblP1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblQFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblQVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblQloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblP1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblQ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblRFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblRVoGEeS2WoXr83SnEA" name="Set" superClass="__jblQloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblRloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblR1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbluVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblSFoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblSVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblSloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblS1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblSFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblTFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblTVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblTloGEeS2WoXr83SnEA" name="Set" superClass="__jblS1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblT1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblUFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl31oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblUVoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblUloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblU1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblVFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblUVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblVVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblVloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblV1oGEeS2WoXr83SnEA" name="Set" superClass="__jblVFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblWFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblWVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblWloGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblW1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblXFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblXVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblXloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblX1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblYFoGEeS2WoXr83SnEA" name="Set" superClass="__jblXVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblYVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblYloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblY1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblZFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblZVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblZloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblY1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblZ1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblaFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblaVoGEeS2WoXr83SnEA" name="Set" superClass="__jblZloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblaloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbla1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblbFoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblbVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblbloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblb1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblbFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblcFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblcVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblcloGEeS2WoXr83SnEA" name="Set" superClass="__jblb1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblc1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbldFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblw1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbldVoGEeS2WoXr83SnEA" name="Bag" superClass="__jblWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbldloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbld1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jbleFoGEeS2WoXr83SnEA" name="Bag" superClass="__jblY1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbleVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbleloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl41oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jble1oGEeS2WoXr83SnEA" name="Bag" superClass="__jblUVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblfFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblfVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jblyFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblfloGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblf1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblgFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblgVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblfloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblgloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblg1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblhFoGEeS2WoXr83SnEA" name="Set" superClass="__jblgVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblhVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblhloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfEVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblh1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jbliFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbliVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbliloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblh1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbli1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbljFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbljVoGEeS2WoXr83SnEA" name="Set" superClass="__jbliloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbljloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblj1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfAFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblkFoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblkVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblkloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblk1oGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblkFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbllFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbllVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbllloGEeS2WoXr83SnEA" name="Set" superClass="__jblk1oGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbll1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblmFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfC1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblmVoGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblmloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblm1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblnFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jblmVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblnVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblnloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jbln1oGEeS2WoXr83SnEA" name="Set" superClass="__jblnFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jbloFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbloVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbe9VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jbloloGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblo1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblpFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblpVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="__jbloloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblploGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblp1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jblGVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jblGFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jblF1oGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="__jblqFoGEeS2WoXr83SnEA" name="Set" superClass="__jblpVoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="__jblqVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblqloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbk01oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbk0loGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#__jbk0VoGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfBloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblq1oGEeS2WoXr83SnEA" name="Collection">
+ <templateBinding xmi:id="__jblrFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblrVoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiy1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbiyVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#__jbjeloGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="__jblrloGEeS2WoXr83SnEA" name="Bag" superClass="__jblq1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblr1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jblsFoGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbiiVoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbiiFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:BagType" href="OCL.xml#__jbih1oGEeS2WoXr83SnEA"/>
+ <elementType href="StmcMM.xml#__jbfBFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="__jblsVoGEeS2WoXr83SnEA" name="OrderedCollection" superClass="__jblWloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jblsloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbls1oGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbkHFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbkG1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#__jbkGloGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="__jbltFoGEeS2WoXr83SnEA" name="Sequence" superClass="__jblsVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="__jbltVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="__jbltloGEeS2WoXr83SnEA">
+ <actual xmi:type="flatemofqvt:Class" href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ <formal href="OCL.xml#__jbkf1oGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#__jbkfloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SequenceType" href="OCL.xml#__jbkfVoGEeS2WoXr83SnEA"/>
+ <elementType href="SeqMM.xml#__jbl01oGEeS2WoXr83SnEA"/>
+ </ownedType>
+</flatemofqvt:Package>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/OCL.xml
new file mode 100644
index 0000000..5ead39f
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/OCL.xml
@@ -0,0 +1,2890 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_BafHfloHEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <nestedPackage xmi:id="_BafHf1oHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHgFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKVVoHEeS2WoXr83SnEA _BafKWVoHEeS2WoXr83SnEA"
+ contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHgVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKS1oHEeS2WoXr83SnEA"
+ contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafKSloHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHgloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKUVoHEeS2WoXr83SnEA"
+ contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafKUFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHg1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKXVoHEeS2WoXr83SnEA"
+ contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHhFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKRFoHEeS2WoXr83SnEA"
+ contextType="_BafKIVoHEeS2WoXr83SnEA" resultType="_BafI9loHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHhVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKxloHEeS2WoXr83SnEA _BafK11oHEeS2WoXr83SnEA _BafK3FoHEeS2WoXr83SnEA _BafK31oHEeS2WoXr83SnEA _BafK5FoHEeS2WoXr83SnEA _BafK81oHEeS2WoXr83SnEA _BafK91oHEeS2WoXr83SnEA _BafK-1oHEeS2WoXr83SnEA"
+ contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHhloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafKzVoHEeS2WoXr83SnEA"
+ contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafKzFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHh1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafK1FoHEeS2WoXr83SnEA"
+ contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafK01oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHiFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafK7loHEeS2WoXr83SnEA"
+ contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafK7VoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHiVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafK6FoHEeS2WoXr83SnEA _BafK_1oHEeS2WoXr83SnEA"
+ contextType="_BafKY1oHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHiloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMCloHEeS2WoXr83SnEA _BafMDloHEeS2WoXr83SnEA"
+ contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHi1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMEloHEeS2WoXr83SnEA"
+ contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHjFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafL-VoHEeS2WoXr83SnEA"
+ contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafLv1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHjVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMAFoHEeS2WoXr83SnEA"
+ contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafL_1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHjloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMBloHEeS2WoXr83SnEA"
+ contextType="_BafLwloHEeS2WoXr83SnEA" resultType="_BafMBVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHj1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMXloHEeS2WoXr83SnEA _BafMYloHEeS2WoXr83SnEA"
+ contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHkFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMZloHEeS2WoXr83SnEA"
+ contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHkVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMTVoHEeS2WoXr83SnEA"
+ contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafIyVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHkloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMVFoHEeS2WoXr83SnEA"
+ contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafMU1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHk1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMWloHEeS2WoXr83SnEA"
+ contextType="_BafMF1oHEeS2WoXr83SnEA" resultType="_BafMWVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHlFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMoloHEeS2WoXr83SnEA _BafMploHEeS2WoXr83SnEA"
+ contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafJQ1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHlVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMqloHEeS2WoXr83SnEA"
+ contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHlloHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMkVoHEeS2WoXr83SnEA"
+ contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafMaFoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHl1oHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMmFoHEeS2WoXr83SnEA"
+ contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafMl1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHmFoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMnloHEeS2WoXr83SnEA"
+ contextType="_BafMa1oHEeS2WoXr83SnEA" resultType="_BafMnVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_BafHmVoHEeS2WoXr83SnEA" name="Lambda" superClass="_BafLfVoHEeS2WoXr83SnEA" typedElement="_BafMwFoHEeS2WoXr83SnEA"
+ contextType="_BafMsVoHEeS2WoXr83SnEA" resultType="_BafLEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_BafHmloHEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_BafHxloHEeS2WoXr83SnEA _BafI9VoHEeS2WoXr83SnEA _BafJEFoHEeS2WoXr83SnEA"
+ superClass="_BafLk1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafHm1oHEeS2WoXr83SnEA" name="first" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafHnFoHEeS2WoXr83SnEA" name="second" type="_BafKsVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHnVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafHx1oHEeS2WoXr83SnEA" typedElement="_BafKRloHEeS2WoXr83SnEA" elementType="_BafKSloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHnloHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHn1oHEeS2WoXr83SnEA" actual="_BafKSloHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHoFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafHyloHEeS2WoXr83SnEA" typedElement="_BafKTVoHEeS2WoXr83SnEA" elementType="_BafKUFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHoVoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHoloHEeS2WoXr83SnEA" actual="_BafKUFoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHo1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafHzVoHEeS2WoXr83SnEA" typedElement="_BafKLVoHEeS2WoXr83SnEA" elementType="_BafKMVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHpFoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHpVoHEeS2WoXr83SnEA" actual="_BafKMVoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHploHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafH0FoHEeS2WoXr83SnEA" typedElement="_BafKOFoHEeS2WoXr83SnEA" elementType="_BafKO1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHp1oHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHqFoHEeS2WoXr83SnEA" actual="_BafKO1oHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHqVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafH01oHEeS2WoXr83SnEA" typedElement="_BafKPVoHEeS2WoXr83SnEA" elementType="_BafKQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHqloHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHq1oHEeS2WoXr83SnEA" actual="_BafKQFoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHrFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafH8VoHEeS2WoXr83SnEA" typedElement="_BafKcVoHEeS2WoXr83SnEA _BafKn1oHEeS2WoXr83SnEA _BafKwVoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHrVoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHrloHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHr1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafH9FoHEeS2WoXr83SnEA" typedElement="_BafKZFoHEeS2WoXr83SnEA" elementType="_BafKYFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHsFoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHsVoHEeS2WoXr83SnEA" actual="_BafKYFoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHsloHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafH-loHEeS2WoXr83SnEA" typedElement="_BafLCVoHEeS2WoXr83SnEA" elementType="_BafLAVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHs1oHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHtFoHEeS2WoXr83SnEA" actual="_BafLAVoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHtVoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafH_VoHEeS2WoXr83SnEA" typedElement="_BafLDloHEeS2WoXr83SnEA" elementType="_BafLCloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHtloHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHt1oHEeS2WoXr83SnEA" actual="_BafLCloHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHuFoHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafIMFoHEeS2WoXr83SnEA" typedElement="_BafMk1oHEeS2WoXr83SnEA" elementType="_BafMl1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHuVoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHuloHEeS2WoXr83SnEA" actual="_BafMl1oHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafHu1oHEeS2WoXr83SnEA" name="Bag" unspecializedElement="_BafKHloHEeS2WoXr83SnEA"
+ superClass="_BafIM1oHEeS2WoXr83SnEA" typedElement="_BafMmloHEeS2WoXr83SnEA" elementType="_BafMnVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHvFoHEeS2WoXr83SnEA" signature="_BafKH1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHvVoHEeS2WoXr83SnEA" actual="_BafMnVoHEeS2WoXr83SnEA" formal="_BafKIFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHvloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafJYVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHv1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHwFoHEeS2WoXr83SnEA" actual="_BafJYVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHwVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafJtVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHwloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHw1oHEeS2WoXr83SnEA" actual="_BafJtVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHxFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafHmloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHxVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHxloHEeS2WoXr83SnEA" actual="_BafHmloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHx1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKSloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHyFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHyVoHEeS2WoXr83SnEA" actual="_BafKSloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHyloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKUFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHy1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHzFoHEeS2WoXr83SnEA" actual="_BafKUFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHzVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKMVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHzloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHz1oHEeS2WoXr83SnEA" actual="_BafKMVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH0FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKO1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH0VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH0loHEeS2WoXr83SnEA" actual="_BafKO1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH01oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH1FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH1VoHEeS2WoXr83SnEA" actual="_BafKQFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH1loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKN1oHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH11oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH2FoHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH2VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKyFoHEeS2WoXr83SnEA" elementType="_BafKzFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH2loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH21oHEeS2WoXr83SnEA" actual="_BafKzFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH3FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKz1oHEeS2WoXr83SnEA" elementType="_BafK01oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH3VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH3loHEeS2WoXr83SnEA" actual="_BafK01oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH31oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKhFoHEeS2WoXr83SnEA" elementType="_BafKg1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH4FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH4VoHEeS2WoXr83SnEA" actual="_BafKg1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH4loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKi1oHEeS2WoXr83SnEA" elementType="_BafKj1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH41oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH5FoHEeS2WoXr83SnEA" actual="_BafKj1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH5VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKmFoHEeS2WoXr83SnEA" elementType="_BafKl1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH5loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH51oHEeS2WoXr83SnEA" actual="_BafKl1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH6FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKsloHEeS2WoXr83SnEA" elementType="_BafKsVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH6VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH6loHEeS2WoXr83SnEA" actual="_BafKsVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH61oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKs1oHEeS2WoXr83SnEA" elementType="_BafKtloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH7FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH7VoHEeS2WoXr83SnEA" actual="_BafKtloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH7loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKuFoHEeS2WoXr83SnEA" elementType="_BafKu1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH71oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH8FoHEeS2WoXr83SnEA" actual="_BafKu1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH8VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH8loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH81oHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH9FoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafKYFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH9VoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH9loHEeS2WoXr83SnEA" actual="_BafKYFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH91oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH-FoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH-VoHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH-loHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLAVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH-1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH_FoHEeS2WoXr83SnEA" actual="_BafLAVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafH_VoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLCloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafH_loHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafH_1oHEeS2WoXr83SnEA" actual="_BafLCloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIAFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKLFoHEeS2WoXr83SnEA _BafKiloHEeS2WoXr83SnEA _BafL1VoHEeS2WoXr83SnEA _BafMKFoHEeS2WoXr83SnEA _BafMeVoHEeS2WoXr83SnEA"
+ elementType="_BafLEVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIAVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIAloHEeS2WoXr83SnEA" actual="_BafLEVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIA1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLUFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIBFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIBVoHEeS2WoXr83SnEA" actual="_BafLUFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIBloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLiVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIB1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafICFoHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafICVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLtFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafICloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIC1oHEeS2WoXr83SnEA" actual="_BafLtFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIDFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL_1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIDVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIDloHEeS2WoXr83SnEA" actual="_BafL_1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafID1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMBVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIEFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIEVoHEeS2WoXr83SnEA" actual="_BafMBVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIEloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIE1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIFFoHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIFVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIFloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIF1oHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIGFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIGVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIGloHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIG1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafLwloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIHFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIHVoHEeS2WoXr83SnEA" actual="_BafLwloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIHloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMU1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIH1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIIFoHEeS2WoXr83SnEA" actual="_BafMU1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIIVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMWVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIIloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafII1oHEeS2WoXr83SnEA" actual="_BafMWVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIJFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMLVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIJVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIJloHEeS2WoXr83SnEA" actual="_BafMLVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIJ1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIKFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIKVoHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIKloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIK1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafILFoHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafILVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafILloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIL1oHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIMFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMl1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIMVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIMloHEeS2WoXr83SnEA" actual="_BafMl1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIM1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMnVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafINFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafINVoHEeS2WoXr83SnEA" actual="_BafMnVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafINloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMfloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIN1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIOFoHEeS2WoXr83SnEA" actual="_BafMfloHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIOVoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMiFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIOloHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIO1oHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIPFoHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" elementType="_BafMjVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIPVoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIPloHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIP1oHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafMhFoHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIQFoHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIQVoHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIQloHEeS2WoXr83SnEA" name="Collection" unspecializedElement="_BafKYFoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafMt1oHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIQ1oHEeS2WoXr83SnEA" signature="_BafKYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIRFoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafKYloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIRVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKHVoHEeS2WoXr83SnEA" instanceType="_BafKHFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIRloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIR1oHEeS2WoXr83SnEA" actual="_BafKHFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafISFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKPFoHEeS2WoXr83SnEA" instanceType="_BafKO1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafISVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafISloHEeS2WoXr83SnEA" actual="_BafKO1oHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIS1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKQVoHEeS2WoXr83SnEA" instanceType="_BafKQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafITFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafITVoHEeS2WoXr83SnEA" actual="_BafKQFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafITloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKt1oHEeS2WoXr83SnEA" instanceType="_BafKtloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIT1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIUFoHEeS2WoXr83SnEA" actual="_BafKtloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIUVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafKvFoHEeS2WoXr83SnEA" instanceType="_BafKu1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIUloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIU1oHEeS2WoXr83SnEA" actual="_BafKu1oHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIVFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLIFoHEeS2WoXr83SnEA" instanceType="_BafLH1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIVVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIVloHEeS2WoXr83SnEA" actual="_BafLH1oHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIV1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLK1oHEeS2WoXr83SnEA" instanceType="_BafLKloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIWFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIWVoHEeS2WoXr83SnEA" actual="_BafLKloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIWloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLM1oHEeS2WoXr83SnEA" instanceType="_BafLMloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIW1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIXFoHEeS2WoXr83SnEA" actual="_BafLMloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIXVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLa1oHEeS2WoXr83SnEA" instanceType="_BafLaloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIXloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIX1oHEeS2WoXr83SnEA" actual="_BafLaloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIYFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLcVoHEeS2WoXr83SnEA" instanceType="_BafLcFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIYVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIYloHEeS2WoXr83SnEA" actual="_BafLcFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIY1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLdloHEeS2WoXr83SnEA" instanceType="_BafLdVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIZFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIZVoHEeS2WoXr83SnEA" actual="_BafLdVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIZloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" instanceType="_BafLWFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIZ1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIaFoHEeS2WoXr83SnEA" actual="_BafLWFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIaVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafLO1oHEeS2WoXr83SnEA _BafLeFoHEeS2WoXr83SnEA" instanceType="_BafLiVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIaloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIa1oHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIbFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" instanceType="_BafLnloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIbVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIbloHEeS2WoXr83SnEA" actual="_BafLnloHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIb1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafL7VoHEeS2WoXr83SnEA" instanceType="_BafL7FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIcFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIcVoHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIcloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafL8loHEeS2WoXr83SnEA" instanceType="_BafL8VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIc1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIdFoHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIdVoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMQVoHEeS2WoXr83SnEA" instanceType="_BafMQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIdloHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafId1oHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIeFoHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMRloHEeS2WoXr83SnEA" instanceType="_BafMRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIeVoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIeloHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIe1oHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMiVoHEeS2WoXr83SnEA" instanceType="_BafMiFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIfFoHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIfVoHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafIfloHEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_BafLCloHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" typedElement="_BafMjloHEeS2WoXr83SnEA" instanceType="_BafMjVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIf1oHEeS2WoXr83SnEA" signature="_BafLC1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIgFoHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafLDFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIgVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafHvloHEeS2WoXr83SnEA" elementType="_BafJYVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIgloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIg1oHEeS2WoXr83SnEA" actual="_BafJYVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIhFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafHwVoHEeS2WoXr83SnEA" elementType="_BafJtVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIhVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIhloHEeS2WoXr83SnEA" actual="_BafJtVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIh1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafH1loHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIiFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIiVoHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIiloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafH8VoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIi1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIjFoHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIjVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafH91oHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIjloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIj1oHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIkFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIDFoHEeS2WoXr83SnEA" elementType="_BafL_1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIkVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIkloHEeS2WoXr83SnEA" actual="_BafL_1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIk1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafID1oHEeS2WoXr83SnEA" elementType="_BafMBVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIlFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIlVoHEeS2WoXr83SnEA" actual="_BafMBVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIlloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIEloHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIl1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafImFoHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafImVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIFVoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafImloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIm1oHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafInFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIGFoHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafInVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafInloHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIn1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIG1oHEeS2WoXr83SnEA" typedElement="_BafLz1oHEeS2WoXr83SnEA _BafL5loHEeS2WoXr83SnEA" elementType="_BafLwloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIoFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIoVoHEeS2WoXr83SnEA" actual="_BafLwloHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIoloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIHloHEeS2WoXr83SnEA" elementType="_BafMU1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIo1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIpFoHEeS2WoXr83SnEA" actual="_BafMU1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIpVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIIVoHEeS2WoXr83SnEA" elementType="_BafMWVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIploHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIp1oHEeS2WoXr83SnEA" actual="_BafMWVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIqFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIJFoHEeS2WoXr83SnEA" elementType="_BafMLVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIqVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIqloHEeS2WoXr83SnEA" actual="_BafMLVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIq1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIJ1oHEeS2WoXr83SnEA" elementType="_BafMQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIrFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIrVoHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIrloHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIKloHEeS2WoXr83SnEA" elementType="_BafMRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIr1oHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIsFoHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIsVoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafILVoHEeS2WoXr83SnEA" typedElement="_BafMIloHEeS2WoXr83SnEA _BafMOloHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIsloHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIs1oHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafItFoHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIP1oHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafItVoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafItloHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafIt1oHEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_BafLsVoHEeS2WoXr83SnEA"
+ superClass="_BafIQloHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIuFoHEeS2WoXr83SnEA" signature="_BafLsloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIuVoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafLs1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIuloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafIiloHEeS2WoXr83SnEA _BafJFFoHEeS2WoXr83SnEA" typedElement="_BafKc1oHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIu1oHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIvFoHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIvVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafIjVoHEeS2WoXr83SnEA _BafJF1oHEeS2WoXr83SnEA" typedElement="_BafLA1oHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIvloHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIv1oHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIwFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafIlloHEeS2WoXr83SnEA _BafJI1oHEeS2WoXr83SnEA" typedElement="_BafL1loHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIwVoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIwloHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIw1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafImVoHEeS2WoXr83SnEA _BafJJloHEeS2WoXr83SnEA" typedElement="_BafL6VoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIxFoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIxVoHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIxloHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafInFoHEeS2WoXr83SnEA _BafJKVoHEeS2WoXr83SnEA" typedElement="_BafL7loHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIx1oHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIyFoHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIyVoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafIsVoHEeS2WoXr83SnEA _BafJL1oHEeS2WoXr83SnEA" typedElement="_BafMS1oHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIyloHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIy1oHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIzFoHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafItFoHEeS2WoXr83SnEA _BafJO1oHEeS2WoXr83SnEA" typedElement="_BafMqFoHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafIzVoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafIzloHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafIz1oHEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_BafLv1oHEeS2WoXr83SnEA"
+ superClass="_BafIt1oHEeS2WoXr83SnEA _BafJPloHEeS2WoXr83SnEA" typedElement="_BafMvloHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI0FoHEeS2WoXr83SnEA" signature="_BafLwFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI0VoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafLwVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI0loHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIgVoHEeS2WoXr83SnEA" elementType="_BafJYVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI01oHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI1FoHEeS2WoXr83SnEA" actual="_BafJYVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI1VoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIhFoHEeS2WoXr83SnEA" typedElement="_BafJzFoHEeS2WoXr83SnEA _BafKDFoHEeS2WoXr83SnEA _BafKDloHEeS2WoXr83SnEA _BafKEVoHEeS2WoXr83SnEA"
+ elementType="_BafJtVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI1loHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI11oHEeS2WoXr83SnEA" actual="_BafJtVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI2FoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIh1oHEeS2WoXr83SnEA" typedElement="_BafKW1oHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI2VoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI2loHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI21oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIiloHEeS2WoXr83SnEA" typedElement="_BafKdVoHEeS2WoXr83SnEA _BafK_VoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI3FoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI3VoHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI3loHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIkFoHEeS2WoXr83SnEA" typedElement="_BafL-1oHEeS2WoXr83SnEA" elementType="_BafL_1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI31oHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI4FoHEeS2WoXr83SnEA" actual="_BafL_1oHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI4VoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIk1oHEeS2WoXr83SnEA" typedElement="_BafMAloHEeS2WoXr83SnEA" elementType="_BafMBVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI4loHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI41oHEeS2WoXr83SnEA" actual="_BafMBVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI5FoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIoloHEeS2WoXr83SnEA" typedElement="_BafMT1oHEeS2WoXr83SnEA" elementType="_BafMU1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI5VoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI5loHEeS2WoXr83SnEA" actual="_BafMU1oHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI51oHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIpVoHEeS2WoXr83SnEA" typedElement="_BafMVloHEeS2WoXr83SnEA" elementType="_BafMWVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI6FoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI6VoHEeS2WoXr83SnEA" actual="_BafMWVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI6loHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIqFoHEeS2WoXr83SnEA" typedElement="_BafMKVoHEeS2WoXr83SnEA" elementType="_BafMLVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI61oHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI7FoHEeS2WoXr83SnEA" actual="_BafMLVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI7VoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIq1oHEeS2WoXr83SnEA" typedElement="_BafMPVoHEeS2WoXr83SnEA" elementType="_BafMQFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI7loHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI71oHEeS2WoXr83SnEA" actual="_BafMQFoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafI8FoHEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_BafMFFoHEeS2WoXr83SnEA"
+ superClass="_BafIrloHEeS2WoXr83SnEA" typedElement="_BafMQloHEeS2WoXr83SnEA" elementType="_BafMRVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI8VoHEeS2WoXr83SnEA" signature="_BafMFVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI8loHEeS2WoXr83SnEA" actual="_BafMRVoHEeS2WoXr83SnEA" formal="_BafMFloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI81oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJDloHEeS2WoXr83SnEA" typedElement="_BafKrVoHEeS2WoXr83SnEA" elementType="_BafHmloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI9FoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI9VoHEeS2WoXr83SnEA" actual="_BafHmloHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI9loHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJEVoHEeS2WoXr83SnEA" typedElement="_BafKQloHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI91oHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI-FoHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI-VoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJFFoHEeS2WoXr83SnEA" typedElement="_BafKd1oHEeS2WoXr83SnEA _BafKoloHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI-loHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI-1oHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI_FoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJHVoHEeS2WoXr83SnEA" typedElement="_BafLVloHEeS2WoXr83SnEA" elementType="_BafLUFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafI_VoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafI_loHEeS2WoXr83SnEA" actual="_BafLUFoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafI_1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJIFoHEeS2WoXr83SnEA" typedElement="_BafJSloHEeS2WoXr83SnEA _BafLBVoHEeS2WoXr83SnEA _BafLGVoHEeS2WoXr83SnEA _BafLUloHEeS2WoXr83SnEA _BafLYFoHEeS2WoXr83SnEA _BafLZloHEeS2WoXr83SnEA _BafLpVoHEeS2WoXr83SnEA"
+ elementType="_BafLiVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJAFoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJAVoHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJAloHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJMloHEeS2WoXr83SnEA" typedElement="_BafMeloHEeS2WoXr83SnEA" elementType="_BafMfloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJA1oHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJBFoHEeS2WoXr83SnEA" actual="_BafMfloHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJBVoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJNVoHEeS2WoXr83SnEA" typedElement="_BafMhVoHEeS2WoXr83SnEA" elementType="_BafMiFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJBloHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJB1oHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJCFoHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJOFoHEeS2WoXr83SnEA" typedElement="_BafMiloHEeS2WoXr83SnEA" elementType="_BafMjVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJCVoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJCloHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafJC1oHEeS2WoXr83SnEA" name="Set" unspecializedElement="_BafMaFoHEeS2WoXr83SnEA"
+ superClass="_BafJPloHEeS2WoXr83SnEA" typedElement="_BafMtVoHEeS2WoXr83SnEA _BafMuFoHEeS2WoXr83SnEA _BafMu1oHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJDFoHEeS2WoXr83SnEA" signature="_BafMaVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJDVoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafMaloHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJDloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafHxFoHEeS2WoXr83SnEA" elementType="_BafHmloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJD1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJEFoHEeS2WoXr83SnEA" actual="_BafHmloHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJEVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafH1loHEeS2WoXr83SnEA" elementType="_BafKIVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJEloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJE1oHEeS2WoXr83SnEA" actual="_BafKIVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJFFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafH8VoHEeS2WoXr83SnEA" typedElement="_BafKpFoHEeS2WoXr83SnEA" elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJFVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJFloHEeS2WoXr83SnEA" actual="_BafKY1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJF1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafH91oHEeS2WoXr83SnEA" elementType="_BafLB1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJGFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJGVoHEeS2WoXr83SnEA" actual="_BafLB1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJGloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIAFoHEeS2WoXr83SnEA" typedElement="_BafLxVoHEeS2WoXr83SnEA _BafMbloHEeS2WoXr83SnEA _BafMtFoHEeS2WoXr83SnEA _BafMuloHEeS2WoXr83SnEA"
+ elementType="_BafLEVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJG1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJHFoHEeS2WoXr83SnEA" actual="_BafLEVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJHVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIA1oHEeS2WoXr83SnEA" elementType="_BafLUFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJHloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJH1oHEeS2WoXr83SnEA" actual="_BafLUFoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJIFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIBloHEeS2WoXr83SnEA" elementType="_BafLiVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJIVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJIloHEeS2WoXr83SnEA" actual="_BafLiVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJI1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIEloHEeS2WoXr83SnEA" elementType="_BafL2VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJJFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJJVoHEeS2WoXr83SnEA" actual="_BafL2VoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJJloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIFVoHEeS2WoXr83SnEA" elementType="_BafL7FoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJJ1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJKFoHEeS2WoXr83SnEA" actual="_BafL7FoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJKVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIGFoHEeS2WoXr83SnEA" elementType="_BafL8VoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJKloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJK1oHEeS2WoXr83SnEA" actual="_BafL8VoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJLFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIG1oHEeS2WoXr83SnEA" elementType="_BafLwloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJLVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJLloHEeS2WoXr83SnEA" actual="_BafLwloHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJL1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafILVoHEeS2WoXr83SnEA" elementType="_BafMF1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJMFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJMVoHEeS2WoXr83SnEA" actual="_BafMF1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJMloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafINloHEeS2WoXr83SnEA" elementType="_BafMfloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJM1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJNFoHEeS2WoXr83SnEA" actual="_BafMfloHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJNVoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIOVoHEeS2WoXr83SnEA" elementType="_BafMiFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJNloHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJN1oHEeS2WoXr83SnEA" actual="_BafMiFoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJOFoHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIPFoHEeS2WoXr83SnEA" elementType="_BafMjVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJOVoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJOloHEeS2WoXr83SnEA" actual="_BafMjVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJO1oHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIP1oHEeS2WoXr83SnEA" elementType="_BafMa1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJPFoHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJPVoHEeS2WoXr83SnEA" actual="_BafMa1oHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafJPloHEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_BafMrloHEeS2WoXr83SnEA"
+ superClass="_BafIQloHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafJP1oHEeS2WoXr83SnEA" signature="_BafMr1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafJQFoHEeS2WoXr83SnEA" actual="_BafMsVoHEeS2WoXr83SnEA" formal="_BafMsFoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_BafJQVoHEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <ownedComment xmi:id="_BafJQloHEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.
This sub clause contains all standard types defined within OCL, including all the operations defined on those types.
For each operation the signature and a description of the semantics is given.
Within the description, the reserved word ‘result’ is used to refer to the value that results from evaluating the operation.
In several places, post conditions are used to describe properties of the result.
When there is more than one postcondition, all postconditions must be true.
A similar thing is true for multiple preconditions.
If these are used, the operation is only defined if all preconditions evaluate to oclText[true].

heading:1[Introduction]

The structure, syntax, and semantics of the OCL is defined in Clauses 8 (“Abstract Syntax”), 9 (“Concrete Syntax”),
and 10 (“Semantics Described using UML”).
This sub clause adds another part to the OCL definition: a library of predefined types and operations.
Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,
where the language definition and the standard libraries are both mandatory parts of the complete language definition.

The OCL standard library defines a number of types.
It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.
These are familiar from many other languages. The second part of the standard library consists of the collection types.
They are Bag, Set, Sequence, and Collection where Collection is an abstract type.
Note that all types defined in the OCL standard library are instances of an abstract syntax class.
The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.

Next to definitions of types the OCL standard library defines a number of template expressions.
Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.
For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.

The Standard Library may be extended with new types, new operations and new iterators.
In particular new operations can be defined for collections.

Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted
in an appropriate fashion.
A locale is defined as a concatenation of up to three character sequences separated by underscores,
with the first sequence identifying the language and the second sequence identifying the country.
The third sequence is empty but may encode an implementation-specific variant.
Trailing empty strings and separators may be omitted.

The character sequences for languages are defined by ISO 639.

The character sequences for countries are defined by ISO 3166.

‘fr_CA’ therefore identifies the locale for the French language in the Canada country.

Comparison of strings and consequently the collation order of Collection::sortedBy()
conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.

The locale is ‘en_us’ by default but may be configured by a property constraint on OclAny::oclLocale.

The prevailing locale is defined by the prevailing value of oclLocale within the current environment;
it may therefore be changed temporarily by using a Let expression.
let oclLocale : String = ‘fr_CA’ in aString.toUpperCase()

heading:1[Iterators]

This sub clause defines the standard OCL iterator expressions.
In the abstract syntax these are all instances of IteratorExp.
These iterator expressions always have a collection expression as their source,
as is defined in the well-formedness rules in Clause 8 (“Abstract Syntax”).
The defined iterator expressions are shown per source collection type.
The semantics of each iterator expression is defined through a mapping from the iterator to the ‘iterate’ construct.
This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.

In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,
and the righthand side of the equals sign is the equivalent as an IterateExp.
The names source, body, and iterator refer to the role names in the abstract syntax:

source	The source expression of the IteratorExp.

body	The body expression of the IteratorExp.

iterator	The iterator variable of the IteratorExp.

result	The result variable of the IterateExp.

heading:2[Extending the Standard Library with Iterator Expressions]

It is possible to add new iterator expressions in the standard library.
If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,
in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJQ1oHEeS2WoXr83SnEA" name="Boolean" superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_BafJRFoHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJRVoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_BafJRloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJR1oHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJSFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_BafJSVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJSloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+ <ownedComment xmi:id="_BafJS1oHEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJTFoHEeS2WoXr83SnEA" name="and" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isInvalidating="true" isValidating="true" precedence="_BafMyFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJTVoHEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[true]."/>
+ <bodyExpression xmi:id="_BafJTloHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = false then false
+ else self
+ endif endif
+ else if self = false then false
+ else if b.oclIsInvalid() then b
+ else if b = false then false
+ else if self = null then null
+ else if b = null then null
+ else true
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_BafJT1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJUFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isInvalidating="true" isValidating="true" precedence="_BafMy1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJUVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_BafJUloHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = false then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then b
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_BafJU1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJVFoHEeS2WoXr83SnEA" name="not" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+ precedence="_BafMw1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJVVoHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].
oclText[false] if oclText[self] is oclText[true].
oclText[null] if oclText[self] is oclText[null].
Otherwise oclText[invalid]."/>
+ <bodyExpression xmi:id="_BafJVloHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if self = null then null
+ else self = false
+ endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJV1oHEeS2WoXr83SnEA" name="or" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+ isInvalidating="true" isValidating="true" precedence="_BafMyVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJWFoHEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_BafJWVoHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = true then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then null
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_BafJWloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJW1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_BafJXFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJXVoHEeS2WoXr83SnEA" name="xor" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+ precedence="_BafMyloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJXloHEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].
oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null]."/>
+ <bodyExpression xmi:id="_BafJX1oHEeS2WoXr83SnEA" type="_BafJQ1oHEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if b.oclIsInvalid() then b
+ else if self = null then null
+ else if b = null then null
+ else self <> b
+ endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_BafJYFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJRFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJR1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJTFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJTloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJT1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJUloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJU1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJVFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJVloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJV1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJWVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJWloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJXVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_BafJX1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJYFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJkloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJlVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJmFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJm1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJnloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJoVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJuVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJvFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJv1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJwVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJw1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJxloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ1FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ11oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ4FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ7VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ_FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafKFFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKIloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKJFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKa1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKbloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKfFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKf1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKkFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKk1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKpVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKq1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK1loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK2loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK3loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK4loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK5loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_BafK8VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLE1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLFloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLIVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLJFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLJloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLLFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLLloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLNFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLQVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLRFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLR1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLSloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLWloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLXVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLYloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLY1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLZFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLZVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLbFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLbVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLcloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLd1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLeVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLeloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLgVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLg1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLhVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLlVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLl1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLm1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLoFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLoloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLp1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLqFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLqVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLqloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLq1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLrFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLrVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLrloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLxloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLyFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMGFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMGloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMb1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafMcVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafM0loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafM1loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNF1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNHFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNIFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNM1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNOFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNPVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNZVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNaFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNcloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNj1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNl1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafNrVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafN6VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafN7VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRdbms.xml#_BafN8VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN9VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN-1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafOB1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJYVoHEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_BafHwFoHEeS2WoXr83SnEA _BafIg1oHEeS2WoXr83SnEA _BafI1FoHEeS2WoXr83SnEA"
+ superClass="_BafJg1oHEeS2WoXr83SnEA" typedElement="_BafJYloHEeS2WoXr83SnEA _BafJZVoHEeS2WoXr83SnEA _BafJaFoHEeS2WoXr83SnEA _BafJaloHEeS2WoXr83SnEA _BafJcFoHEeS2WoXr83SnEA _BafJcloHEeS2WoXr83SnEA _BafJdVoHEeS2WoXr83SnEA _BafJd1oHEeS2WoXr83SnEA _BafJeFoHEeS2WoXr83SnEA _BafJe1oHEeS2WoXr83SnEA _BafJfloHEeS2WoXr83SnEA _BafJgFoHEeS2WoXr83SnEA _BafJploHEeS2WoXr83SnEA _BafJqVoHEeS2WoXr83SnEA _BafJsVoHEeS2WoXr83SnEA _BafJy1oHEeS2WoXr83SnEA _BafJzloHEeS2WoXr83SnEA _BafJ2loHEeS2WoXr83SnEA _BafJ3VoHEeS2WoXr83SnEA _BafJ61oHEeS2WoXr83SnEA _BafJ-loHEeS2WoXr83SnEA _BafJ-1oHEeS2WoXr83SnEA _BafJ_loHEeS2WoXr83SnEA _BafKZ1oHEeS2WoXr83SnEA _BafKaVoHEeS2WoXr83SnEA _BafKeVoHEeS2WoXr83SnEA _BafKvVoHEeS2WoXr83SnEA _BafLTVoHEeS2WoXr83SnEA _BafLt1oHEeS2WoXr83SnEA _BafLuloHEeS2WoXr83SnEA _BafL31oHEeS2WoXr83SnEA _BafL9VoHEeS2WoXr83SnEA _BafL9loHEeS2WoXr83SnEA _BafMM1oHEeS2WoXr83SnEA _BafMSVoHEeS2WoXr83SnEA _BafMSloHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_BafJYloHEeS2WoXr83SnEA" name="*" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_BafMxFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJY1oHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+ <ownedParameter xmi:id="_BafJZFoHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJZVoHEeS2WoXr83SnEA" name="+" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJZloHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+ <ownedParameter xmi:id="_BafJZ1oHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJaFoHEeS2WoXr83SnEA" name="-" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_BafMw1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJaVoHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJaloHEeS2WoXr83SnEA" name="-" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJa1oHEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+ <ownedParameter xmi:id="_BafJbFoHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJbVoHEeS2WoXr83SnEA" name="/" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_BafMxFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJbloHEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.
Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_BafJb1oHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJcFoHEeS2WoXr83SnEA" name="abs" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_BafJcVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJcloHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_BafJc1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_BafJdFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJdVoHEeS2WoXr83SnEA" name="div" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+ <ownedComment xmi:id="_BafJdloHEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+ <ownedParameter xmi:id="_BafJd1oHEeS2WoXr83SnEA" name="i" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJeFoHEeS2WoXr83SnEA" name="max" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_BafJeVoHEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_BafJeloHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJe1oHEeS2WoXr83SnEA" name="min" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_BafJfFoHEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_BafJfVoHEeS2WoXr83SnEA" name="i" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJfloHEeS2WoXr83SnEA" name="mod" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+ <ownedComment xmi:id="_BafJf1oHEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+ <ownedParameter xmi:id="_BafJgFoHEeS2WoXr83SnEA" name="i" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJgVoHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_BafJgloHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJg1oHEeS2WoXr83SnEA" name="Real" superClass="_BafLP1oHEeS2WoXr83SnEA _BafLjFoHEeS2WoXr83SnEA"
+ typedElement="_BafJbVoHEeS2WoXr83SnEA _BafJhFoHEeS2WoXr83SnEA _BafJh1oHEeS2WoXr83SnEA _BafJiloHEeS2WoXr83SnEA _BafJjFoHEeS2WoXr83SnEA _BafJj1oHEeS2WoXr83SnEA _BafJpFoHEeS2WoXr83SnEA _BafJq1oHEeS2WoXr83SnEA _BafJrloHEeS2WoXr83SnEA _BafKBFoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_BafJhFoHEeS2WoXr83SnEA" name="*" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_BafMxFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJhVoHEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+ <ownedParameter xmi:id="_BafJhloHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJh1oHEeS2WoXr83SnEA" name="+" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJiFoHEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+ <ownedParameter xmi:id="_BafJiVoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJiloHEeS2WoXr83SnEA" name="-" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_BafMw1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJi1oHEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJjFoHEeS2WoXr83SnEA" name="-" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJjVoHEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+ <ownedParameter xmi:id="_BafJjloHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJj1oHEeS2WoXr83SnEA" name="/" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_BafMxFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJkFoHEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_BafJkVoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJkloHEeS2WoXr83SnEA" name="<" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJk1oHEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+ <ownedParameter xmi:id="_BafJlFoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJlVoHEeS2WoXr83SnEA" name="<=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJlloHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+ <ownedParameter xmi:id="_BafJl1oHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJmFoHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJmVoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_BafJmloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJm1oHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJnFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_BafJnVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJnloHEeS2WoXr83SnEA" name=">" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJn1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+ <ownedParameter xmi:id="_BafJoFoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJoVoHEeS2WoXr83SnEA" name=">=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJoloHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+ <ownedParameter xmi:id="_BafJo1oHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJpFoHEeS2WoXr83SnEA" name="abs" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_BafJpVoHEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJploHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_BafJp1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_BafJqFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJqVoHEeS2WoXr83SnEA" name="floor" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+ <ownedComment xmi:id="_BafJqloHEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJq1oHEeS2WoXr83SnEA" name="max" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_BafJrFoHEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_BafJrVoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJrloHEeS2WoXr83SnEA" name="min" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_BafJr1oHEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_BafJsFoHEeS2WoXr83SnEA" name="r" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJsVoHEeS2WoXr83SnEA" name="round" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+ <ownedComment xmi:id="_BafJsloHEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJs1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_BafJtFoHEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafJtVoHEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_BafHw1oHEeS2WoXr83SnEA _BafIhloHEeS2WoXr83SnEA _BafI11oHEeS2WoXr83SnEA"
+ superClass="_BafLP1oHEeS2WoXr83SnEA _BafLjFoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_BafJtloHEeS2WoXr83SnEA" name="+" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJt1oHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_BafJuFoHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJuVoHEeS2WoXr83SnEA" name="<" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJuloHEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_BafJu1oHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJvFoHEeS2WoXr83SnEA" name="<=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJvVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_BafJvloHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJv1oHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafJwFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJwVoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafJwloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJw1oHEeS2WoXr83SnEA" name=">" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJxFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_BafJxVoHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJxloHEeS2WoXr83SnEA" name=">=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafJx1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_BafJyFoHEeS2WoXr83SnEA" name="s" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJyVoHEeS2WoXr83SnEA" name="at" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafJyloHEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+ <ownedParameter xmi:id="_BafJy1oHEeS2WoXr83SnEA" name="i" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJzFoHEeS2WoXr83SnEA" name="characters" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+ <ownedComment xmi:id="_BafJzVoHEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJzloHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+ <ownedComment xmi:id="_BafJz1oHEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_BafJ0FoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ0VoHEeS2WoXr83SnEA" name="concat" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+ <ownedComment xmi:id="_BafJ0loHEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_BafJ01oHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ1FoHEeS2WoXr83SnEA" name="endsWith" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+ <ownedComment xmi:id="_BafJ1VoHEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.
Every string ends with the empty string."/>
+ <ownedParameter xmi:id="_BafJ1loHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ11oHEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+ <ownedComment xmi:id="_BafJ2FoHEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+ <ownedParameter xmi:id="_BafJ2VoHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ2loHEeS2WoXr83SnEA" name="indexOf" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+ <ownedComment xmi:id="_BafJ21oHEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_BafJ3FoHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ3VoHEeS2WoXr83SnEA" name="lastIndexOf" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+ <ownedComment xmi:id="_BafJ3loHEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_BafJ31oHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ4FoHEeS2WoXr83SnEA" name="matches" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+ <ownedComment xmi:id="_BafJ4VoHEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+ <ownedParameter xmi:id="_BafJ4loHEeS2WoXr83SnEA" name="regex" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ41oHEeS2WoXr83SnEA" name="replaceAll" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafJ5FoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+ <ownedParameter xmi:id="_BafJ5VoHEeS2WoXr83SnEA" name="regex" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafJ5loHEeS2WoXr83SnEA" name="replacement" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ51oHEeS2WoXr83SnEA" name="replaceFirst" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafJ6FoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+ <ownedParameter xmi:id="_BafJ6VoHEeS2WoXr83SnEA" name="regex" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafJ6loHEeS2WoXr83SnEA" name="replacement" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ61oHEeS2WoXr83SnEA" name="size" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+ <ownedComment xmi:id="_BafJ7FoHEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ7VoHEeS2WoXr83SnEA" name="startsWith" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+ <ownedComment xmi:id="_BafJ7loHEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.
Every string starts with the empty string."/>
+ <ownedParameter xmi:id="_BafJ71oHEeS2WoXr83SnEA" name="s" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ8FoHEeS2WoXr83SnEA" name="substituteAll" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+ <ownedComment xmi:id="_BafJ8VoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+ <ownedParameter xmi:id="_BafJ8loHEeS2WoXr83SnEA" name="oldSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafJ81oHEeS2WoXr83SnEA" name="newSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ9FoHEeS2WoXr83SnEA" name="substituteFirst" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+ <ownedComment xmi:id="_BafJ9VoHEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.
Returns invalid if there is no first occurrence."/>
+ <ownedParameter xmi:id="_BafJ9loHEeS2WoXr83SnEA" name="oldSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafJ91oHEeS2WoXr83SnEA" name="newSubstring" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ-FoHEeS2WoXr83SnEA" name="substring" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafJ-VoHEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+ <ownedParameter xmi:id="_BafJ-loHEeS2WoXr83SnEA" name="lower" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafJ-1oHEeS2WoXr83SnEA" name="upper" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ_FoHEeS2WoXr83SnEA" name="toBoolean" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafJ_VoHEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafJ_loHEeS2WoXr83SnEA" name="toInteger" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafJ_1oHEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKAFoHEeS2WoXr83SnEA" name="toLower" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_BafKAVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKAloHEeS2WoXr83SnEA" name="toLowerCase" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_BafKA1oHEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKBFoHEeS2WoXr83SnEA" name="toReal" type="_BafJg1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafKBVoHEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKBloHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_BafKB1oHEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKCFoHEeS2WoXr83SnEA" name="toUpper" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_BafKCVoHEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKCloHEeS2WoXr83SnEA" name="toUpperCase" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_BafKC1oHEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKDFoHEeS2WoXr83SnEA" name="tokenize" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_BafKDVoHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.
The delimiters are omitted from the return."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKDloHEeS2WoXr83SnEA" name="tokenize" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_BafKD1oHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+ <ownedParameter xmi:id="_BafKEFoHEeS2WoXr83SnEA" name="delimiters" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKEVoHEeS2WoXr83SnEA" name="tokenize" type="_BafI1VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_BafKEloHEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is
true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+ <ownedParameter xmi:id="_BafKE1oHEeS2WoXr83SnEA" name="delimiters" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafKFFoHEeS2WoXr83SnEA" name="returnDelimiters" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKFVoHEeS2WoXr83SnEA" name="trim" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+ <ownedComment xmi:id="_BafKFloHEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOFloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOG1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="umlMM.xml#_BafOLFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJW1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJgVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJs1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJtloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJuFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJyVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ0VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ01oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ1loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ2VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ3FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ31oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ4loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ41oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ5VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ5loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ51oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ6VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ6loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ71oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ8FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ8loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ81oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ9FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ9loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafJ91oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafJ-FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKAFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKAloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKBloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKCloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafKEFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafKE1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafKFVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_BafLOloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLPVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLe1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_BafLr1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHOloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHQFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHRVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="rdbmsMM.xml#_BafHTFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Function" href="UmlToRdbms.xml#_BafMz1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="UmlToRdbms.xml#_BafM0FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRdbms.xml#_BafM0VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM01oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM1FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRdbms.xml#_BafM1VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM11oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM2FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM2VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM2loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM21oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM41oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM6FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafM6VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafM81oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM9VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafM_FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNAFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNAVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNAloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNBFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNCVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNCloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNDVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNDloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNHVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNHloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNI1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNMFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNNloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNO1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNQFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNSFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNTFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNU1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNVVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNWVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNWloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNW1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNXFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNYloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNZloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRdbms.xml#_BafNZ1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNaVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNaloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNa1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNbFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNbVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNbloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNb1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNcFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNc1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNdFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNdVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNfVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNhloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNh1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNjFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNkFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNkVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafNkloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNk1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNlFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNlVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNmloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNqloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNsFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNuFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNvFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNvloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafNwloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNxFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNy1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN0VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafN01oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN21oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN3FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN3VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN3loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN31oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN_FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN_VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN_loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafN_1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafOAFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOAVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafOAloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOA1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafOBFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOBVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOCFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRdbms.xml#_BafOCVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafOCloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRdbms.xml#_BafOC1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_BafKF1oHEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_BafJYVoHEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_BafKGFoHEeS2WoXr83SnEA" name="oclAsType" type="_BafKHFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+ <ownedComment xmi:id="_BafKGVoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to
Real or Integer, but the e[unlimited] value may not.
Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+ <ownedTemplateSignature xmi:id="_BafKGloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKG1oHEeS2WoXr83SnEA" parameteredElement="_BafKHFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKHFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKG1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIR1oHEeS2WoXr83SnEA" typedElement="_BafKGFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKHVoHEeS2WoXr83SnEA" name="type" type="_BafIRVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_BafKHloHEeS2WoXr83SnEA" name="Bag" superClass="_BafH1loHEeS2WoXr83SnEA" typedElement="_BafKJ1oHEeS2WoXr83SnEA _BafKKloHEeS2WoXr83SnEA _BafKMloHEeS2WoXr83SnEA _BafKNVoHEeS2WoXr83SnEA _BafKU1oHEeS2WoXr83SnEA _BafKV1oHEeS2WoXr83SnEA"
+ elementType="_BafKIVoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafKH1oHEeS2WoXr83SnEA" templateBinding="_BafHnloHEeS2WoXr83SnEA _BafHoVoHEeS2WoXr83SnEA _BafHpFoHEeS2WoXr83SnEA _BafHp1oHEeS2WoXr83SnEA _BafHqloHEeS2WoXr83SnEA _BafHrVoHEeS2WoXr83SnEA _BafHsFoHEeS2WoXr83SnEA _BafHs1oHEeS2WoXr83SnEA _BafHtloHEeS2WoXr83SnEA _BafHuVoHEeS2WoXr83SnEA _BafHvFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKIFoHEeS2WoXr83SnEA" parameteredElement="_BafKIVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHn1oHEeS2WoXr83SnEA _BafHoloHEeS2WoXr83SnEA _BafHpVoHEeS2WoXr83SnEA _BafHqFoHEeS2WoXr83SnEA _BafHq1oHEeS2WoXr83SnEA _BafHrloHEeS2WoXr83SnEA _BafHsVoHEeS2WoXr83SnEA _BafHtFoHEeS2WoXr83SnEA _BafHt1oHEeS2WoXr83SnEA _BafHuloHEeS2WoXr83SnEA _BafHvVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKIVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafKIFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH2FoHEeS2WoXr83SnEA _BafIiVoHEeS2WoXr83SnEA _BafI2loHEeS2WoXr83SnEA _BafI-FoHEeS2WoXr83SnEA _BafJE1oHEeS2WoXr83SnEA"
+ typedElement="_BafKNFoHEeS2WoXr83SnEA _BafKRVoHEeS2WoXr83SnEA _BafKTFoHEeS2WoXr83SnEA _BafKUloHEeS2WoXr83SnEA _BafKVloHEeS2WoXr83SnEA _BafKWloHEeS2WoXr83SnEA _BafKXloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_BafKIloHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafKI1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKJFoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafKJVoHEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+ <ownedParameter xmi:id="_BafKJloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKJ1oHEeS2WoXr83SnEA" name="excluding" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_BafKKFoHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+ <ownedParameter xmi:id="_BafKKVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKKloHEeS2WoXr83SnEA" name="excludingAll" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_BafKK1oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_BafKLFoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKLVoHEeS2WoXr83SnEA" name="flatten" type="_BafHo1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_BafKLloHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].
If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_BafKL1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKMFoHEeS2WoXr83SnEA" parameteredElement="_BafKMVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKMVoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKMFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHpVoHEeS2WoXr83SnEA _BafHz1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKMloHEeS2WoXr83SnEA" name="including" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_BafKM1oHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_BafKNFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKNVoHEeS2WoXr83SnEA" name="includingAll" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_BafKNloHEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_BafKN1oHEeS2WoXr83SnEA" name="objects" type="_BafH1loHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKOFoHEeS2WoXr83SnEA" name="selectByKind" type="_BafHploHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_BafKOVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKOloHEeS2WoXr83SnEA" parameteredElement="_BafKO1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKO1oHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKOloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHqFoHEeS2WoXr83SnEA _BafH0loHEeS2WoXr83SnEA _BafISloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKPFoHEeS2WoXr83SnEA" name="type" type="_BafISFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKPVoHEeS2WoXr83SnEA" name="selectByType" type="_BafHqVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_BafKPloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKP1oHEeS2WoXr83SnEA" parameteredElement="_BafKQFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKQFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKP1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHq1oHEeS2WoXr83SnEA _BafH1VoHEeS2WoXr83SnEA _BafITVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKQVoHEeS2WoXr83SnEA" name="type" type="_BafIS1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKQloHEeS2WoXr83SnEA" name="closure" type="_BafI9loHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_BafKQ1oHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_BafKRFoHEeS2WoXr83SnEA" name="lambda" type="_BafHhFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKRVoHEeS2WoXr83SnEA" name="i" type="_BafKIVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKRloHEeS2WoXr83SnEA" name="collectNested" type="_BafHnVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_BafKR1oHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_BafKSFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKSVoHEeS2WoXr83SnEA" parameteredElement="_BafKSloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKSloHEeS2WoXr83SnEA" name="V" templateParameter="_BafKSVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHn1oHEeS2WoXr83SnEA _BafHyVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKS1oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHgVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKTFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKTVoHEeS2WoXr83SnEA" name="collect" type="_BafHoFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_BafKTloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKT1oHEeS2WoXr83SnEA" parameteredElement="_BafKUFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKUFoHEeS2WoXr83SnEA" name="V" templateParameter="_BafKT1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHoloHEeS2WoXr83SnEA _BafHzFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKUVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHgloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKUloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKU1oHEeS2WoXr83SnEA" name="reject" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_BafKVFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].

oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+ <ownedParameter xmi:id="_BafKVVoHEeS2WoXr83SnEA" name="lambda" type="_BafHgFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKVloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKV1oHEeS2WoXr83SnEA" name="select" type="_BafKHloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_BafKWFoHEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].

oclCode[self->select(iterator | body) =
self->iterate(iterator; result : Bag(T) = Bag{} |
if body then result->including(iterator)
else result
endif)]"/>
+ <ownedParameter xmi:id="_BafKWVoHEeS2WoXr83SnEA" name="lambda" type="_BafHgFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKWloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKW1oHEeS2WoXr83SnEA" name="sortedBy" type="_BafI2FoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_BafKXFoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_BafKXVoHEeS2WoXr83SnEA" name="lambda" type="_BafHg1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKXloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKIVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafKX1oHEeS2WoXr83SnEA" name="Class" superClass="_BafLEVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafKYFoHEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_BafHsVoHEeS2WoXr83SnEA _BafH9loHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafKhVoHEeS2WoXr83SnEA _BafKiFoHEeS2WoXr83SnEA _BafKmVoHEeS2WoXr83SnEA _BafKnFoHEeS2WoXr83SnEA _BafKnloHEeS2WoXr83SnEA _BafKoVoHEeS2WoXr83SnEA _BafKw1oHEeS2WoXr83SnEA _BafK9VoHEeS2WoXr83SnEA _BafK-VoHEeS2WoXr83SnEA"
+ elementType="_BafKY1oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafKYVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKYloHEeS2WoXr83SnEA" parameteredElement="_BafKY1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKY1oHEeS2WoXr83SnEA" name="T" templateParameter="_BafKYloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHrloHEeS2WoXr83SnEA _BafH81oHEeS2WoXr83SnEA _BafIjFoHEeS2WoXr83SnEA _BafIvFoHEeS2WoXr83SnEA _BafI3VoHEeS2WoXr83SnEA _BafI-1oHEeS2WoXr83SnEA _BafJFloHEeS2WoXr83SnEA"
+ typedElement="_BafHm1oHEeS2WoXr83SnEA _BafKZVoHEeS2WoXr83SnEA _BafKm1oHEeS2WoXr83SnEA _BafKp1oHEeS2WoXr83SnEA _BafKqVoHEeS2WoXr83SnEA _BafKv1oHEeS2WoXr83SnEA _BafKxFoHEeS2WoXr83SnEA _BafKx1oHEeS2WoXr83SnEA _BafKzloHEeS2WoXr83SnEA _BafK1VoHEeS2WoXr83SnEA _BafK2FoHEeS2WoXr83SnEA _BafK2VoHEeS2WoXr83SnEA _BafK3VoHEeS2WoXr83SnEA _BafK4FoHEeS2WoXr83SnEA _BafK4VoHEeS2WoXr83SnEA _BafK5VoHEeS2WoXr83SnEA _BafK6VoHEeS2WoXr83SnEA _BafK8FoHEeS2WoXr83SnEA _BafK9FoHEeS2WoXr83SnEA _BafK-FoHEeS2WoXr83SnEA _BafK_FoHEeS2WoXr83SnEA _BafLAFoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafKZFoHEeS2WoXr83SnEA" name="Collection" type="_BafHr1oHEeS2WoXr83SnEA" implicit="true" opposite="_BafKZVoHEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ <templateParameterSubstitution href="umlMM.xml#_BafONFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafON1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOOloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOPVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOQFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafHwFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafHw1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafHxloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafHyVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafHzFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafHz1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH0loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH1VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH2FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH21oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH3loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH4VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH5FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH51oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH6loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH7VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH8FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH81oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH9loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH-VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH_FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafH_1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIAloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIBVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafICFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIC1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIDloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIEVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIFFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIF1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIGloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIHVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIIFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafII1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIJloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIKVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafILFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIL1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIMloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafINVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIOFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIO1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIPloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIQVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafIRFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHU1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHVloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHWVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHXFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHX1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="umlMM.xml#_BafOM1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafONloHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOOVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOPFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOP1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafHv1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafHwloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafHxVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafHyFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafHy1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafHzloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH0VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH1FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH11oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH2loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH3VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH4FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH41oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH5loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH6VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH7FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH71oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH8loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH9VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH-FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH-1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafH_loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIAVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIBFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIB1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafICloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIDVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIEFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIE1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIFloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIGVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIHFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIH1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIIloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIJVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIKFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIK1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafILloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIMVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafINFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIN1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIOloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIPVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIQFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafIQ1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHUloHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHVVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHWFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHW1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHXloHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_BafKZVoHEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+ opposite="_BafKZFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafKZloHEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafKZ1oHEeS2WoXr83SnEA" isStatic="true" name="lower" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+ <ownedComment xmi:id="_BafKaFoHEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafKaVoHEeS2WoXr83SnEA" isStatic="true" name="upper" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+ <ownedComment xmi:id="_BafKaloHEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_BafKa1oHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafKbFoHEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+ <ownedParameter xmi:id="_BafKbVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKbloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafKb1oHEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,
in the case of an ordered collection type."/>
+ <ownedParameter xmi:id="_BafKcFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKcVoHEeS2WoXr83SnEA" name="asBag" type="_BafHrFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+ <ownedComment xmi:id="_BafKcloHEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKc1oHEeS2WoXr83SnEA" name="asOrderedSet" type="_BafIuloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+ <ownedComment xmi:id="_BafKdFoHEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,
in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKdVoHEeS2WoXr83SnEA" name="asSequence" type="_BafI21oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+ <ownedComment xmi:id="_BafKdloHEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKd1oHEeS2WoXr83SnEA" name="asSet" type="_BafI-VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+ <ownedComment xmi:id="_BafKeFoHEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKeVoHEeS2WoXr83SnEA" name="count" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+ <ownedComment xmi:id="_BafKeloHEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+ <ownedParameter xmi:id="_BafKe1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKfFoHEeS2WoXr83SnEA" name="excludes" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+ <ownedComment xmi:id="_BafKfVoHEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_BafKfloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKf1oHEeS2WoXr83SnEA" name="excludesAll" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+ <ownedComment xmi:id="_BafKgFoHEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_BafKgVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKgloHEeS2WoXr83SnEA" parameteredElement="_BafKg1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKg1oHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKgloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH4VoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKhFoHEeS2WoXr83SnEA" name="c2" type="_BafH31oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKhVoHEeS2WoXr83SnEA" name="excluding" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_BafKhloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+ <ownedParameter xmi:id="_BafKh1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKiFoHEeS2WoXr83SnEA" name="excludingAll" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_BafKiVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_BafKiloHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKi1oHEeS2WoXr83SnEA" name="flatten" type="_BafH4loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_BafKjFoHEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].
If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_BafKjVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKjloHEeS2WoXr83SnEA" parameteredElement="_BafKj1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKj1oHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKjloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH5FoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKkFoHEeS2WoXr83SnEA" name="includes" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+ <ownedComment xmi:id="_BafKkVoHEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_BafKkloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKk1oHEeS2WoXr83SnEA" name="includesAll" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+ <ownedComment xmi:id="_BafKlFoHEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_BafKlVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKlloHEeS2WoXr83SnEA" parameteredElement="_BafKl1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKl1oHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKlloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH51oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKmFoHEeS2WoXr83SnEA" name="c2" type="_BafH5VoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKmVoHEeS2WoXr83SnEA" name="including" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_BafKmloHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_BafKm1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKnFoHEeS2WoXr83SnEA" name="includingAll" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_BafKnVoHEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_BafKnloHEeS2WoXr83SnEA" name="objects" type="_BafKYFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKn1oHEeS2WoXr83SnEA" name="intersection" type="_BafHrFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_BafKoFoHEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+ <ownedParameter xmi:id="_BafKoVoHEeS2WoXr83SnEA" name="c" type="_BafKYFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKoloHEeS2WoXr83SnEA" name="intersection" type="_BafI-VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_BafKo1oHEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+ <ownedParameter xmi:id="_BafKpFoHEeS2WoXr83SnEA" name="u" type="_BafJFFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKpVoHEeS2WoXr83SnEA" name="isEmpty" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+ <ownedComment xmi:id="_BafKploHEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?

Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKp1oHEeS2WoXr83SnEA" name="max" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+ <ownedComment xmi:id="_BafKqFoHEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].
Elements must be of a type supporting the max operation.
The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKqVoHEeS2WoXr83SnEA" name="min" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+ <ownedComment xmi:id="_BafKqloHEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].
Elements must be of a type supporting the min operation.
The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKq1oHEeS2WoXr83SnEA" name="notEmpty" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+ <ownedComment xmi:id="_BafKrFoHEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?

oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKrVoHEeS2WoXr83SnEA" name="product" type="_BafI81oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+ <ownedComment xmi:id="_BafKrloHEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+ <ownedTemplateSignature xmi:id="_BafKr1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKsFoHEeS2WoXr83SnEA" parameteredElement="_BafKsVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKsVoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafKsFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH6loHEeS2WoXr83SnEA" typedElement="_BafHnFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKsloHEeS2WoXr83SnEA" name="c2" type="_BafH6FoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKs1oHEeS2WoXr83SnEA" name="selectByKind" type="_BafH61oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_BafKtFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKtVoHEeS2WoXr83SnEA" parameteredElement="_BafKtloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKtloHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKtVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH7VoHEeS2WoXr83SnEA _BafIUFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKt1oHEeS2WoXr83SnEA" name="type" type="_BafITloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKuFoHEeS2WoXr83SnEA" name="selectByType" type="_BafH7loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_BafKuVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKuloHEeS2WoXr83SnEA" parameteredElement="_BafKu1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKu1oHEeS2WoXr83SnEA" name="TT" templateParameter="_BafKuloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH8FoHEeS2WoXr83SnEA _BafIU1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKvFoHEeS2WoXr83SnEA" name="type" type="_BafIUVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKvVoHEeS2WoXr83SnEA" name="size" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+ <ownedComment xmi:id="_BafKvloHEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKv1oHEeS2WoXr83SnEA" name="sum" type="_BafKY1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+ <ownedComment xmi:id="_BafKwFoHEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].
Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.
The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).
UnlimitedNatural, Integer and Real fulfill this condition.

If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,
which may result in unpredictable results during evaluation.
If an implementation is able to detect a lack of associativity or commutativity,
the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafKwVoHEeS2WoXr83SnEA" name="union" type="_BafHrFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_BafKwloHEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+ <ownedParameter xmi:id="_BafKw1oHEeS2WoXr83SnEA" name="c" type="_BafKYFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKxFoHEeS2WoXr83SnEA" name="any" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+ <ownedComment xmi:id="_BafKxVoHEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].
If there is more than one element for which body is oclText[true], one of them is returned.
There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+ <ownedParameter xmi:id="_BafKxloHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKx1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKyFoHEeS2WoXr83SnEA" name="collectNested" type="_BafH2VoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_BafKyVoHEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+ <ownedTemplateSignature xmi:id="_BafKyloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafKy1oHEeS2WoXr83SnEA" parameteredElement="_BafKzFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafKzFoHEeS2WoXr83SnEA" name="V" templateParameter="_BafKy1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH21oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafKzVoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafKzloHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafKz1oHEeS2WoXr83SnEA" name="collect" type="_BafH3FoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedComment xmi:id="_BafK0FoHEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.
The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.
collectNested is defined individually for each subclass of CollectionType."/>
+ <ownedTemplateSignature xmi:id="_BafK0VoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafK0loHEeS2WoXr83SnEA" parameteredElement="_BafK01oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafK01oHEeS2WoXr83SnEA" name="V" templateParameter="_BafK0loHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafH3loHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafK1FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHh1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK1VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK1loHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedParameter xmi:id="_BafK11oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK2FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK2VoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK2loHEeS2WoXr83SnEA" name="exists" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedComment xmi:id="_BafK21oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+ <ownedParameter xmi:id="_BafK3FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK3VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK3loHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedParameter xmi:id="_BafK31oHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK4FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK4VoHEeS2WoXr83SnEA" name="j" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK4loHEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedComment xmi:id="_BafK41oHEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_BafK5FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK5VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK5loHEeS2WoXr83SnEA" name="isUnique" type="_BafJQ1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+ <ownedComment xmi:id="_BafK51oHEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_BafK6FoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHiVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK6VoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK6loHEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_BafK7VoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+ <ownedTemplateSignature xmi:id="_BafK61oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafK7FoHEeS2WoXr83SnEA" parameteredElement="_BafK7VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafK7VoHEeS2WoXr83SnEA" name="Tacc" templateParameter="_BafK7FoHEeS2WoXr83SnEA"
+ typedElement="_BafK6loHEeS2WoXr83SnEA _BafK71oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafK7loHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHiFoHEeS2WoXr83SnEA"/>
+ <ownedAccumulator xmi:id="_BafK71oHEeS2WoXr83SnEA" name="acc" isRequired="false" type="_BafK7VoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK8FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK8VoHEeS2WoXr83SnEA" name="one" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+ <ownedComment xmi:id="_BafK8loHEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_BafK81oHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK9FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK9VoHEeS2WoXr83SnEA" name="reject" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_BafK9loHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_BafK91oHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK-FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK-VoHEeS2WoXr83SnEA" name="select" type="_BafKYFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_BafK-loHEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_BafK-1oHEeS2WoXr83SnEA" name="lambda" type="_BafHhVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafK_FoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafK_VoHEeS2WoXr83SnEA" name="sortedBy" type="_BafI21oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_BafK_loHEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_BafK_1oHEeS2WoXr83SnEA" name="lambda" type="_BafHiVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafLAFoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafKY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLAVoHEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_BafHtFoHEeS2WoXr83SnEA _BafH_FoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLAloHEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+ <ownedAttribute xmi:id="_BafLA1oHEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_BafIvVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+ opposite="_BafLCVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLBFoHEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_BafLBVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+ <ownedComment xmi:id="_BafLBloHEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLB1oHEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_BafH-VoHEeS2WoXr83SnEA _BafIj1oHEeS2WoXr83SnEA _BafIv1oHEeS2WoXr83SnEA _BafJGVoHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLCFoHEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+ <ownedAttribute xmi:id="_BafLCVoHEeS2WoXr83SnEA" name="Enumeration" type="_BafHsloHEeS2WoXr83SnEA" implicit="true" opposite="_BafLA1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_BafLCloHEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_BafHt1oHEeS2WoXr83SnEA _BafH_1oHEeS2WoXr83SnEA"
+ superClass="_BafKX1oHEeS2WoXr83SnEA _BafLmVoHEeS2WoXr83SnEA" instanceType="_BafLDVoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafLC1oHEeS2WoXr83SnEA" templateBinding="_BafIRloHEeS2WoXr83SnEA _BafISVoHEeS2WoXr83SnEA _BafITFoHEeS2WoXr83SnEA _BafIT1oHEeS2WoXr83SnEA _BafIUloHEeS2WoXr83SnEA _BafIVVoHEeS2WoXr83SnEA _BafIWFoHEeS2WoXr83SnEA _BafIW1oHEeS2WoXr83SnEA _BafIXloHEeS2WoXr83SnEA _BafIYVoHEeS2WoXr83SnEA _BafIZFoHEeS2WoXr83SnEA _BafIZ1oHEeS2WoXr83SnEA _BafIaloHEeS2WoXr83SnEA _BafIbVoHEeS2WoXr83SnEA _BafIcFoHEeS2WoXr83SnEA _BafIc1oHEeS2WoXr83SnEA _BafIdloHEeS2WoXr83SnEA _BafIeVoHEeS2WoXr83SnEA _BafIfFoHEeS2WoXr83SnEA _BafIf1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLDFoHEeS2WoXr83SnEA" parameteredElement="_BafLDVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIR1oHEeS2WoXr83SnEA _BafISloHEeS2WoXr83SnEA _BafITVoHEeS2WoXr83SnEA _BafIUFoHEeS2WoXr83SnEA _BafIU1oHEeS2WoXr83SnEA _BafIVloHEeS2WoXr83SnEA _BafIWVoHEeS2WoXr83SnEA _BafIXFoHEeS2WoXr83SnEA _BafIX1oHEeS2WoXr83SnEA _BafIYloHEeS2WoXr83SnEA _BafIZVoHEeS2WoXr83SnEA _BafIaFoHEeS2WoXr83SnEA _BafIa1oHEeS2WoXr83SnEA _BafIbloHEeS2WoXr83SnEA _BafIcVoHEeS2WoXr83SnEA _BafIdFoHEeS2WoXr83SnEA _BafId1oHEeS2WoXr83SnEA _BafIeloHEeS2WoXr83SnEA _BafIfVoHEeS2WoXr83SnEA _BafIgFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLDVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLDFoHEeS2WoXr83SnEA"
+ typedElement="_BafLD1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafLDloHEeS2WoXr83SnEA" name="Metaclass" type="_BafHtVoHEeS2WoXr83SnEA" implicit="true" opposite="_BafLD1oHEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_BafLD1oHEeS2WoXr83SnEA" name="instanceType" type="_BafLDVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+ opposite="_BafLDloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLEFoHEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+ </ownedAttribute>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_BafLEVoHEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_BafIAloHEeS2WoXr83SnEA _BafJHFoHEeS2WoXr83SnEA"
+ typedElement="_BafKKVoHEeS2WoXr83SnEA _BafKe1oHEeS2WoXr83SnEA _BafKfloHEeS2WoXr83SnEA _BafKh1oHEeS2WoXr83SnEA _BafKkloHEeS2WoXr83SnEA _BafLh1oHEeS2WoXr83SnEA _BafLvFoHEeS2WoXr83SnEA _BafL0loHEeS2WoXr83SnEA _BafMJVoHEeS2WoXr83SnEA _BafMdloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLEloHEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.
Conceptually, OclAny behaves as a supertype for all the types.
Features of OclAny are available on each object in all OCL expressions.
OclAny is itself an instance of the metatype AnyType.

All classes in a UML model inherit all operations defined on OclAny.
To avoid name conflicts between properties in the model and the properties inherited from OclAny,
all names on the properties of OclAny start with ‘ocl.’
Although theoretically there may still be name conflicts, they can be avoided.
One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.

Operations of OclAny, where the instance of OclAny is called object."/>
+ <ownedOperation xmi:id="_BafLE1oHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLFFoHEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+ <ownedParameter xmi:id="_BafLFVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLFloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLF1oHEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+ <ownedParameter xmi:id="_BafLGFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLGVoHEeS2WoXr83SnEA" name="oclAsSet" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+ <ownedComment xmi:id="_BafLGloHEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLG1oHEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_BafLH1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedComment xmi:id="_BafLHFoHEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

In the case of feature redefinition, casting an object to a supertype of its actual type
does not access the supertype’s definition of the feature;
according to the semantics of redefinition, the redefined feature simply does not exist for the object.
However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+ <ownedTemplateSignature xmi:id="_BafLHVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLHloHEeS2WoXr83SnEA" parameteredElement="_BafLH1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLH1oHEeS2WoXr83SnEA" name="TT" templateParameter="_BafLHloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIVloHEeS2WoXr83SnEA" typedElement="_BafLG1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafLIFoHEeS2WoXr83SnEA" name="type" type="_BafIVFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLIVoHEeS2WoXr83SnEA" name="oclIsInState" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+ <ownedComment xmi:id="_BafLIloHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+ <ownedParameter xmi:id="_BafLI1oHEeS2WoXr83SnEA" name="statespec" type="_BafLi1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLJFoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_BafLJVoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLJloHEeS2WoXr83SnEA" name="oclIsKindOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedComment xmi:id="_BafLJ1oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.
That is, oclText[self] is of type t or a subtype of t."/>
+ <ownedTemplateSignature xmi:id="_BafLKFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLKVoHEeS2WoXr83SnEA" parameteredElement="_BafLKloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLKloHEeS2WoXr83SnEA" name="T" templateParameter="_BafLKVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIWVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafLK1oHEeS2WoXr83SnEA" name="type" type="_BafIV1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLLFoHEeS2WoXr83SnEA" name="oclIsNew" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_BafLLVoHEeS2WoXr83SnEA" body="Can only be used in a postcondition.
Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn’t exist at precondition time)."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLLloHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedComment xmi:id="_BafLL1oHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+ <ownedTemplateSignature xmi:id="_BafLMFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLMVoHEeS2WoXr83SnEA" parameteredElement="_BafLMloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLMloHEeS2WoXr83SnEA" name="T" templateParameter="_BafLMVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIXFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafLM1oHEeS2WoXr83SnEA" name="type" type="_BafIWloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLNFoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_BafLNVoHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLNloHEeS2WoXr83SnEA" name="oclLog" type="_BafLiVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_BafLN1oHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLOFoHEeS2WoXr83SnEA" name="oclLog" type="_BafLiVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_BafLOVoHEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+ <ownedParameter xmi:id="_BafLOloHEeS2WoXr83SnEA" name="message" type="_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLO1oHEeS2WoXr83SnEA" name="oclType" type="_BafIaVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+ <ownedComment xmi:id="_BafLPFoHEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLPVoHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_BafLPloHEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLP1oHEeS2WoXr83SnEA" name="OclComparable" superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLQFoHEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived
compareTo implementation may be sorted."/>
+ <ownedOperation xmi:id="_BafLQVoHEeS2WoXr83SnEA" name="<" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLQloHEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+ <ownedParameter xmi:id="_BafLQ1oHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLRFoHEeS2WoXr83SnEA" name="<=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLRVoHEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_BafLRloHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLR1oHEeS2WoXr83SnEA" name=">" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLSFoHEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+ <ownedParameter xmi:id="_BafLSVoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLSloHEeS2WoXr83SnEA" name=">=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+ precedence="_BafMxloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLS1oHEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_BafLTFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLTVoHEeS2WoXr83SnEA" name="compareTo" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+ <ownedComment xmi:id="_BafLTloHEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.

The compareTo operation should be commutative."/>
+ <ownedParameter xmi:id="_BafLT1oHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLUFoHEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_BafIBVoHEeS2WoXr83SnEA _BafI_loHEeS2WoXr83SnEA _BafJH1oHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafLVFoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLUVoHEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined
for OclElement are therefore applicable to all user-defined types."/>
+ <ownedOperation xmi:id="_BafLUloHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+ <ownedComment xmi:id="_BafLU1oHEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLVFoHEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_BafLUFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+ <ownedComment xmi:id="_BafLVVoHEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLVloHEeS2WoXr83SnEA" name="oclContents" type="_BafI_FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+ <ownedComment xmi:id="_BafLV1oHEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_BafLWFoHEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_BafIaFoHEeS2WoXr83SnEA"
+ superClass="_BafLnloHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLWVoHEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.
It has one single instance, identified as oclText[invalid].
Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().
OclInvalid is itself an instance of the metatype InvalidType."/>
+ <ownedOperation xmi:id="_BafLWloHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLW1oHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_BafLXFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLXVoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLXloHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_BafLX1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLYFoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+ <ownedComment xmi:id="_BafLYVoHEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLYloHEeS2WoXr83SnEA" name="and" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_BafMyFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLY1oHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLZFoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isValidating="true" precedence="_BafMy1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLZVoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLZloHEeS2WoXr83SnEA" name="oclAsSet" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+ <ownedOperation xmi:id="_BafLZ1oHEeS2WoXr83SnEA" name="oclAsType" type="_BafLaloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedTemplateSignature xmi:id="_BafLaFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLaVoHEeS2WoXr83SnEA" parameteredElement="_BafLaloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLaloHEeS2WoXr83SnEA" name="TT" templateParameter="_BafLaVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIX1oHEeS2WoXr83SnEA" typedElement="_BafLZ1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafLa1oHEeS2WoXr83SnEA" name="type" type="_BafIXVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLbFoHEeS2WoXr83SnEA" name="oclIsInvalid" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_BafLbVoHEeS2WoXr83SnEA" name="oclIsKindOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedTemplateSignature xmi:id="_BafLbloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLb1oHEeS2WoXr83SnEA" parameteredElement="_BafLcFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLcFoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLb1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIYloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafLcVoHEeS2WoXr83SnEA" name="type" type="_BafIYFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLcloHEeS2WoXr83SnEA" name="oclIsTypeOf" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedTemplateSignature xmi:id="_BafLc1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLdFoHEeS2WoXr83SnEA" parameteredElement="_BafLdVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLdVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLdFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIZVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafLdloHEeS2WoXr83SnEA" name="type" type="_BafIY1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLd1oHEeS2WoXr83SnEA" name="oclIsUndefined" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_BafLeFoHEeS2WoXr83SnEA" name="oclType" type="_BafIaVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+ <ownedOperation xmi:id="_BafLeVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_BafMyVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLeloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLe1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_BafLfFoHEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLfVoHEeS2WoXr83SnEA" name="OclLambda" superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLfloHEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda
therefore apply to all lambda expressions."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLf1oHEeS2WoXr83SnEA" name="OclMessage" superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLgFoHEeS2WoXr83SnEA" body="OclMessage
This sub clause contains the definition of the standard type OclMessage.
As defined in this sub clause, each ocl message type is actually a template type with one parameter.
‘T’ denotes the parameter.
A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType.
Every OclMessage is fully determined by either the operation, or signal given as parameter.
Note that there is conceptually an undefined (infinite) number of these types,
as each is determined by a different operation or signal.
These types are unnamed. Every type has as attributes the name of the operation or signal,
and either all formal parameters of the operation, or all attributes of the signal.
OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+ <ownedOperation xmi:id="_BafLgVoHEeS2WoXr83SnEA" name="hasReturned" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_BafLgloHEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.
This implies the fact that the message has been sent. False in all other cases."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLg1oHEeS2WoXr83SnEA" name="isOperationCall" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_BafLhFoHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLhVoHEeS2WoXr83SnEA" name="isSignalSent" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_BafLhloHEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLh1oHEeS2WoXr83SnEA" name="result" type="_BafLEVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_BafLiFoHEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,
and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_BafLiVoHEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_BafICFoHEeS2WoXr83SnEA _BafIa1oHEeS2WoXr83SnEA _BafJAVoHEeS2WoXr83SnEA _BafJIloHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafJRloHEeS2WoXr83SnEA _BafJSVoHEeS2WoXr83SnEA _BafJZFoHEeS2WoXr83SnEA _BafJZ1oHEeS2WoXr83SnEA _BafJbFoHEeS2WoXr83SnEA _BafJb1oHEeS2WoXr83SnEA _BafJdFoHEeS2WoXr83SnEA _BafJeloHEeS2WoXr83SnEA _BafJfVoHEeS2WoXr83SnEA _BafJhloHEeS2WoXr83SnEA _BafJiVoHEeS2WoXr83SnEA _BafJjloHEeS2WoXr83SnEA _BafJkVoHEeS2WoXr83SnEA _BafJlFoHEeS2WoXr83SnEA _BafJl1oHEeS2WoXr83SnEA _BafJmloHEeS2WoXr83SnEA _BafJnVoHEeS2WoXr83SnEA _BafJoFoHEeS2WoXr83SnEA _BafJo1oHEeS2WoXr83SnEA _BafJqFoHEeS2WoXr83SnEA _BafJrVoHEeS2WoXr83SnEA _BafJsFoHEeS2WoXr83SnEA _BafJu1oHEeS2WoXr83SnEA _BafJvloHEeS2WoXr83SnEA _BafJwFoHEeS2WoXr83SnEA _BafJwloHEeS2WoXr83SnEA _BafJxVoHEeS2WoXr83SnEA _BafJyFoHEeS2WoXr83SnEA _BafJ0FoHEeS2WoXr83SnEA _BafKI1oHEeS2WoXr83SnEA _BafKJloHEeS2WoXr83SnEA _BafKbVoHEeS2WoXr83SnEA _BafKcFoHEeS2WoXr83SnEA _BafLFVoHEeS2WoXr83SnEA _BafLGFoHEeS2WoXr83SnEA _BafLNloHEeS2WoXr83SnEA _BafLOFoHEeS2WoXr83SnEA _BafLQ1oHEeS2WoXr83SnEA _BafLRloHEeS2WoXr83SnEA _BafLSVoHEeS2WoXr83SnEA _BafLTFoHEeS2WoXr83SnEA _BafLT1oHEeS2WoXr83SnEA _BafLXFoHEeS2WoXr83SnEA _BafLX1oHEeS2WoXr83SnEA _BafLjloHEeS2WoXr83SnEA _BafLkFoHEeS2WoXr83SnEA _BafLkVoHEeS2WoXr83SnEA _BafLlloHEeS2WoXr83SnEA _BafLmFoHEeS2WoXr83SnEA _BafLoVoHEeS2WoXr83SnEA _BafLpFoHEeS2WoXr83SnEA _BafLx1oHEeS2WoXr83SnEA _BafLyVoHEeS2WoXr83SnEA _BafMGVoHEeS2WoXr83SnEA _BafMHFoHEeS2WoXr83SnEA _BafMcFoHEeS2WoXr83SnEA _BafMc1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLiloHEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation
and Iteration signatures. Instances of OclSelf are never created."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLi1oHEeS2WoXr83SnEA" name="OclState" superClass="_BafLEVoHEeS2WoXr83SnEA" typedElement="_BafLI1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLjFoHEeS2WoXr83SnEA" name="OclSummable" superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLjVoHEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived
sum and zero implementations may be summed."/>
+ <ownedOperation xmi:id="_BafLjloHEeS2WoXr83SnEA" name="sum" type="_BafLiVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLj1oHEeS2WoXr83SnEA" body="Return the sum of self and that.

The sum operation should be associative."/>
+ <ownedParameter xmi:id="_BafLkFoHEeS2WoXr83SnEA" name="that" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLkVoHEeS2WoXr83SnEA" name="zero" type="_BafLiVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLkloHEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.

zero().sum(self) = self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLk1oHEeS2WoXr83SnEA" name="OclTuple" superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLlFoHEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple
therefore apply to all tuples."/>
+ <ownedOperation xmi:id="_BafLlVoHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLlloHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLl1oHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLmFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafLmVoHEeS2WoXr83SnEA" name="OclType" superClass="_BafLUFoHEeS2WoXr83SnEA" typedElement="_BafLnVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLmloHEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined
for OclType are therefore applicable to all UML types."/>
+ <ownedOperation xmi:id="_BafLm1oHEeS2WoXr83SnEA" name="conformsTo" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+ <ownedComment xmi:id="_BafLnFoHEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+ <ownedParameter xmi:id="_BafLnVoHEeS2WoXr83SnEA" name="type2" type="_BafLmVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_BafLnloHEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_BafIbloHEeS2WoXr83SnEA"
+ superClass="_BafLEVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLn1oHEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.
It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.
Any property call applied on oclText[null] results in oclText[invalid], except for the
oclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.
However, by virtue of the implicit conversion to a collection literal,
an expression evaluating to oclText[null] can be used as source of collection operations (such as ‘isEmpty’).
If the source is the oclText[null] literal, it is implicitly converted to Bag{}.

OclVoid is itself an instance of the metatype VoidType."/>
+ <ownedOperation xmi:id="_BafLoFoHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLoVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLoloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLo1oHEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]
if object is oclText[invalid], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_BafLpFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLpVoHEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_BafI_1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+ <ownedComment xmi:id="_BafLploHEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLp1oHEeS2WoXr83SnEA" name="and" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+ precedence="_BafMyFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLqFoHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLqVoHEeS2WoXr83SnEA" name="implies" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+ precedence="_BafMy1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLqloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLq1oHEeS2WoXr83SnEA" name="oclIsInvalid" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_BafLrFoHEeS2WoXr83SnEA" name="oclIsUndefined" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_BafLrVoHEeS2WoXr83SnEA" name="or" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+ precedence="_BafMyVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLrloHEeS2WoXr83SnEA" name="b" isRequired="false" type="_BafJQ1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLr1oHEeS2WoXr83SnEA" name="toString" type="_BafJtVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_BafLsFoHEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafLsVoHEeS2WoXr83SnEA" name="OrderedCollection" superClass="_BafICVoHEeS2WoXr83SnEA"
+ elementType="_BafLtFoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafLsloHEeS2WoXr83SnEA" templateBinding="_BafIgloHEeS2WoXr83SnEA _BafIhVoHEeS2WoXr83SnEA _BafIiFoHEeS2WoXr83SnEA _BafIi1oHEeS2WoXr83SnEA _BafIjloHEeS2WoXr83SnEA _BafIkVoHEeS2WoXr83SnEA _BafIlFoHEeS2WoXr83SnEA _BafIl1oHEeS2WoXr83SnEA _BafImloHEeS2WoXr83SnEA _BafInVoHEeS2WoXr83SnEA _BafIoFoHEeS2WoXr83SnEA _BafIo1oHEeS2WoXr83SnEA _BafIploHEeS2WoXr83SnEA _BafIqVoHEeS2WoXr83SnEA _BafIrFoHEeS2WoXr83SnEA _BafIr1oHEeS2WoXr83SnEA _BafIsloHEeS2WoXr83SnEA _BafItVoHEeS2WoXr83SnEA _BafIuFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLs1oHEeS2WoXr83SnEA" parameteredElement="_BafLtFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIg1oHEeS2WoXr83SnEA _BafIhloHEeS2WoXr83SnEA _BafIiVoHEeS2WoXr83SnEA _BafIjFoHEeS2WoXr83SnEA _BafIj1oHEeS2WoXr83SnEA _BafIkloHEeS2WoXr83SnEA _BafIlVoHEeS2WoXr83SnEA _BafImFoHEeS2WoXr83SnEA _BafIm1oHEeS2WoXr83SnEA _BafInloHEeS2WoXr83SnEA _BafIoVoHEeS2WoXr83SnEA _BafIpFoHEeS2WoXr83SnEA _BafIp1oHEeS2WoXr83SnEA _BafIqloHEeS2WoXr83SnEA _BafIrVoHEeS2WoXr83SnEA _BafIsFoHEeS2WoXr83SnEA _BafIs1oHEeS2WoXr83SnEA _BafItloHEeS2WoXr83SnEA _BafIuVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLtFoHEeS2WoXr83SnEA" name="T" templateParameter="_BafLs1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIC1oHEeS2WoXr83SnEA" typedElement="_BafLtVoHEeS2WoXr83SnEA _BafLuFoHEeS2WoXr83SnEA _BafLvVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_BafLtVoHEeS2WoXr83SnEA" name="at" isRequired="false" type="_BafLtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafLtloHEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+ <ownedParameter xmi:id="_BafLt1oHEeS2WoXr83SnEA" name="index" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLuFoHEeS2WoXr83SnEA" name="first" isRequired="false" type="_BafLtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafLuVoHEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLuloHEeS2WoXr83SnEA" name="indexOf" type="_BafJYVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+ <ownedComment xmi:id="_BafLu1oHEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+ <ownedParameter xmi:id="_BafLvFoHEeS2WoXr83SnEA" name="obj" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLvVoHEeS2WoXr83SnEA" name="last" isRequired="false" type="_BafLtFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafLvloHEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_BafLv1oHEeS2WoXr83SnEA" name="OrderedSet" superClass="_BafIn1oHEeS2WoXr83SnEA _BafJLFoHEeS2WoXr83SnEA"
+ typedElement="_BafLw1oHEeS2WoXr83SnEA _BafLyloHEeS2WoXr83SnEA _BafLzVoHEeS2WoXr83SnEA _BafL0FoHEeS2WoXr83SnEA _BafL01oHEeS2WoXr83SnEA _BafL2loHEeS2WoXr83SnEA _BafL3VoHEeS2WoXr83SnEA _BafL4VoHEeS2WoXr83SnEA _BafL5FoHEeS2WoXr83SnEA _BafL51oHEeS2WoXr83SnEA _BafL81oHEeS2WoXr83SnEA _BafL91oHEeS2WoXr83SnEA _BafMCFoHEeS2WoXr83SnEA _BafMDFoHEeS2WoXr83SnEA _BafMEFoHEeS2WoXr83SnEA"
+ elementType="_BafLwloHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafLwFoHEeS2WoXr83SnEA" templateBinding="_BafIu1oHEeS2WoXr83SnEA _BafIvloHEeS2WoXr83SnEA _BafIwVoHEeS2WoXr83SnEA _BafIxFoHEeS2WoXr83SnEA _BafIx1oHEeS2WoXr83SnEA _BafIyloHEeS2WoXr83SnEA _BafIzVoHEeS2WoXr83SnEA _BafI0FoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafLwVoHEeS2WoXr83SnEA" parameteredElement="_BafLwloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIvFoHEeS2WoXr83SnEA _BafIv1oHEeS2WoXr83SnEA _BafIwloHEeS2WoXr83SnEA _BafIxVoHEeS2WoXr83SnEA _BafIyFoHEeS2WoXr83SnEA _BafIy1oHEeS2WoXr83SnEA _BafIzloHEeS2WoXr83SnEA _BafI0VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafLwloHEeS2WoXr83SnEA" name="T" templateParameter="_BafLwVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIHVoHEeS2WoXr83SnEA _BafIoVoHEeS2WoXr83SnEA _BafJLloHEeS2WoXr83SnEA" typedElement="_BafLzFoHEeS2WoXr83SnEA _BafL3FoHEeS2WoXr83SnEA _BafL4FoHEeS2WoXr83SnEA _BafL41oHEeS2WoXr83SnEA _BafL-loHEeS2WoXr83SnEA _BafMAVoHEeS2WoXr83SnEA _BafMB1oHEeS2WoXr83SnEA _BafMC1oHEeS2WoXr83SnEA _BafMD1oHEeS2WoXr83SnEA _BafME1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_BafLw1oHEeS2WoXr83SnEA" name="-" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafLxFoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_BafLxVoHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLxloHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLx1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLyFoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafLyVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLyloHEeS2WoXr83SnEA" name="append" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_BafLy1oHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_BafLzFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafLzVoHEeS2WoXr83SnEA" name="appendAll" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_BafLzloHEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_BafLz1oHEeS2WoXr83SnEA" name="objects" type="_BafIn1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL0FoHEeS2WoXr83SnEA" name="excluding" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_BafL0VoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_BafL0loHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL01oHEeS2WoXr83SnEA" name="excludingAll" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_BafL1FoHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_BafL1VoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL1loHEeS2WoXr83SnEA" name="flatten" type="_BafIwFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedTemplateSignature xmi:id="_BafL11oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL2FoHEeS2WoXr83SnEA" parameteredElement="_BafL2VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL2VoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafL2FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIFFoHEeS2WoXr83SnEA _BafImFoHEeS2WoXr83SnEA _BafIwloHEeS2WoXr83SnEA _BafJJVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL2loHEeS2WoXr83SnEA" name="including" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_BafL21oHEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+ <ownedParameter xmi:id="_BafL3FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL3VoHEeS2WoXr83SnEA" name="insertAt" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafL3loHEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+ <ownedParameter xmi:id="_BafL31oHEeS2WoXr83SnEA" name="index" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafL4FoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL4VoHEeS2WoXr83SnEA" name="prepend" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_BafL4loHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_BafL41oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL5FoHEeS2WoXr83SnEA" name="prependAll" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_BafL5VoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_BafL5loHEeS2WoXr83SnEA" name="objects" type="_BafIn1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL51oHEeS2WoXr83SnEA" name="reverse" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_BafL6FoHEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL6VoHEeS2WoXr83SnEA" name="selectByKind" type="_BafIw1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_BafL6loHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL61oHEeS2WoXr83SnEA" parameteredElement="_BafL7FoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL7FoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafL61oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIF1oHEeS2WoXr83SnEA _BafIcVoHEeS2WoXr83SnEA _BafIm1oHEeS2WoXr83SnEA _BafIxVoHEeS2WoXr83SnEA _BafJKFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafL7VoHEeS2WoXr83SnEA" name="type" type="_BafIb1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL7loHEeS2WoXr83SnEA" name="selectByType" type="_BafIxloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_BafL71oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL8FoHEeS2WoXr83SnEA" parameteredElement="_BafL8VoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL8VoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafL8FoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIGloHEeS2WoXr83SnEA _BafIdFoHEeS2WoXr83SnEA _BafInloHEeS2WoXr83SnEA _BafIyFoHEeS2WoXr83SnEA _BafJK1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafL8loHEeS2WoXr83SnEA" name="type" type="_BafIcloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafL81oHEeS2WoXr83SnEA" name="subOrderedSet" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafL9FoHEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_BafL9VoHEeS2WoXr83SnEA" name="lower" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafL9loHEeS2WoXr83SnEA" name="upper" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafL91oHEeS2WoXr83SnEA" name="closure" type="_BafLv1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_BafL-FoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_BafL-VoHEeS2WoXr83SnEA" name="lambda" type="_BafHjFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafL-loHEeS2WoXr83SnEA" name="i" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafL-1oHEeS2WoXr83SnEA" name="collectNested" type="_BafI3loHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_BafL_FoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_BafL_VoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafL_loHEeS2WoXr83SnEA" parameteredElement="_BafL_1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafL_1oHEeS2WoXr83SnEA" name="V" templateParameter="_BafL_loHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIDloHEeS2WoXr83SnEA _BafIkloHEeS2WoXr83SnEA _BafI4FoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMAFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHjVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMAVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMAloHEeS2WoXr83SnEA" name="collect" type="_BafI4VoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_BafMA1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMBFoHEeS2WoXr83SnEA" parameteredElement="_BafMBVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMBVoHEeS2WoXr83SnEA" name="V" templateParameter="_BafMBFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIEVoHEeS2WoXr83SnEA _BafIlVoHEeS2WoXr83SnEA _BafI41oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMBloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHjloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMB1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMCFoHEeS2WoXr83SnEA" name="reject" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_BafMCVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_BafMCloHEeS2WoXr83SnEA" name="lambda" type="_BafHiloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMC1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMDFoHEeS2WoXr83SnEA" name="select" type="_BafLv1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_BafMDVoHEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+ <ownedParameter xmi:id="_BafMDloHEeS2WoXr83SnEA" name="lambda" type="_BafHiloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMD1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMEFoHEeS2WoXr83SnEA" name="sortedBy" type="_BafLv1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_BafMEVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_BafMEloHEeS2WoXr83SnEA" name="lambda" type="_BafHi1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafME1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafLwloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_BafMFFoHEeS2WoXr83SnEA" name="Sequence" superClass="_BafIsVoHEeS2WoXr83SnEA"
+ typedElement="_BafMHVoHEeS2WoXr83SnEA _BafMIFoHEeS2WoXr83SnEA _BafMI1oHEeS2WoXr83SnEA _BafMJloHEeS2WoXr83SnEA _BafMLloHEeS2WoXr83SnEA _BafMMVoHEeS2WoXr83SnEA _BafMNVoHEeS2WoXr83SnEA _BafMOFoHEeS2WoXr83SnEA _BafMO1oHEeS2WoXr83SnEA _BafMR1oHEeS2WoXr83SnEA _BafMXFoHEeS2WoXr83SnEA _BafMYFoHEeS2WoXr83SnEA _BafMZFoHEeS2WoXr83SnEA"
+ elementType="_BafMF1oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafMFVoHEeS2WoXr83SnEA" templateBinding="_BafI01oHEeS2WoXr83SnEA _BafI1loHEeS2WoXr83SnEA _BafI2VoHEeS2WoXr83SnEA _BafI3FoHEeS2WoXr83SnEA _BafI31oHEeS2WoXr83SnEA _BafI4loHEeS2WoXr83SnEA _BafI5VoHEeS2WoXr83SnEA _BafI6FoHEeS2WoXr83SnEA _BafI61oHEeS2WoXr83SnEA _BafI7loHEeS2WoXr83SnEA _BafI8VoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMFloHEeS2WoXr83SnEA" parameteredElement="_BafMF1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafI1FoHEeS2WoXr83SnEA _BafI11oHEeS2WoXr83SnEA _BafI2loHEeS2WoXr83SnEA _BafI3VoHEeS2WoXr83SnEA _BafI4FoHEeS2WoXr83SnEA _BafI41oHEeS2WoXr83SnEA _BafI5loHEeS2WoXr83SnEA _BafI6VoHEeS2WoXr83SnEA _BafI7FoHEeS2WoXr83SnEA _BafI71oHEeS2WoXr83SnEA _BafI8loHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMF1oHEeS2WoXr83SnEA" name="T" templateParameter="_BafMFloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIL1oHEeS2WoXr83SnEA _BafIs1oHEeS2WoXr83SnEA _BafIy1oHEeS2WoXr83SnEA _BafJMVoHEeS2WoXr83SnEA"
+ typedElement="_BafMH1oHEeS2WoXr83SnEA _BafMMFoHEeS2WoXr83SnEA _BafMNFoHEeS2WoXr83SnEA _BafMN1oHEeS2WoXr83SnEA _BafMTloHEeS2WoXr83SnEA _BafMVVoHEeS2WoXr83SnEA _BafMW1oHEeS2WoXr83SnEA _BafMX1oHEeS2WoXr83SnEA _BafMY1oHEeS2WoXr83SnEA _BafMZ1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_BafMGFoHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafMGVoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMGloHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafMG1oHEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+ <ownedParameter xmi:id="_BafMHFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMHVoHEeS2WoXr83SnEA" name="append" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_BafMHloHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_BafMH1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMIFoHEeS2WoXr83SnEA" name="appendAll" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_BafMIVoHEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_BafMIloHEeS2WoXr83SnEA" name="objects" type="_BafIsVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMI1oHEeS2WoXr83SnEA" name="excluding" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_BafMJFoHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_BafMJVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMJloHEeS2WoXr83SnEA" name="excludingAll" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_BafMJ1oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_BafMKFoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMKVoHEeS2WoXr83SnEA" name="flatten" type="_BafI6loHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_BafMKloHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].
If the element type is a collection type, the result is the sequence containing all the elements
of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+ <ownedTemplateSignature xmi:id="_BafMK1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMLFoHEeS2WoXr83SnEA" parameteredElement="_BafMLVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMLVoHEeS2WoXr83SnEA" name="T2" templateParameter="_BafMLFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIJloHEeS2WoXr83SnEA _BafIqloHEeS2WoXr83SnEA _BafI7FoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMLloHEeS2WoXr83SnEA" name="including" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_BafML1oHEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+ <ownedParameter xmi:id="_BafMMFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMMVoHEeS2WoXr83SnEA" name="insertAt" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafMMloHEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+ <ownedParameter xmi:id="_BafMM1oHEeS2WoXr83SnEA" name="index" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafMNFoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMNVoHEeS2WoXr83SnEA" name="prepend" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_BafMNloHEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_BafMN1oHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMOFoHEeS2WoXr83SnEA" name="prependAll" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_BafMOVoHEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_BafMOloHEeS2WoXr83SnEA" name="objects" type="_BafIsVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMO1oHEeS2WoXr83SnEA" name="reverse" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_BafMPFoHEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMPVoHEeS2WoXr83SnEA" name="selectByKind" type="_BafI7VoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_BafMPloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMP1oHEeS2WoXr83SnEA" parameteredElement="_BafMQFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMQFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMP1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIKVoHEeS2WoXr83SnEA _BafId1oHEeS2WoXr83SnEA _BafIrVoHEeS2WoXr83SnEA _BafI71oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMQVoHEeS2WoXr83SnEA" name="type" type="_BafIdVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMQloHEeS2WoXr83SnEA" name="selectByType" type="_BafI8FoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_BafMQ1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMRFoHEeS2WoXr83SnEA" parameteredElement="_BafMRVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMRVoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMRFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafILFoHEeS2WoXr83SnEA _BafIeloHEeS2WoXr83SnEA _BafIsFoHEeS2WoXr83SnEA _BafI8loHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMRloHEeS2WoXr83SnEA" name="type" type="_BafIeFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMR1oHEeS2WoXr83SnEA" name="subSequence" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_BafMSFoHEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_BafMSVoHEeS2WoXr83SnEA" name="lower" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafMSloHEeS2WoXr83SnEA" name="upper" type="_BafJYVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMS1oHEeS2WoXr83SnEA" name="closure" type="_BafIyVoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_BafMTFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_BafMTVoHEeS2WoXr83SnEA" name="lambda" type="_BafHkVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMTloHEeS2WoXr83SnEA" name="i" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMT1oHEeS2WoXr83SnEA" name="collectNested" type="_BafI5FoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_BafMUFoHEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_BafMUVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMUloHEeS2WoXr83SnEA" parameteredElement="_BafMU1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMU1oHEeS2WoXr83SnEA" name="V" templateParameter="_BafMUloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIIFoHEeS2WoXr83SnEA _BafIpFoHEeS2WoXr83SnEA _BafI5loHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMVFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHkloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMVVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMVloHEeS2WoXr83SnEA" name="collect" type="_BafI51oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_BafMV1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMWFoHEeS2WoXr83SnEA" parameteredElement="_BafMWVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMWVoHEeS2WoXr83SnEA" name="V" templateParameter="_BafMWFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafII1oHEeS2WoXr83SnEA _BafIp1oHEeS2WoXr83SnEA _BafI6VoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMWloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHk1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMW1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMXFoHEeS2WoXr83SnEA" name="reject" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_BafMXVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_BafMXloHEeS2WoXr83SnEA" name="lambda" type="_BafHj1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMX1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMYFoHEeS2WoXr83SnEA" name="select" type="_BafMFFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_BafMYVoHEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_BafMYloHEeS2WoXr83SnEA" name="lambda" type="_BafHj1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMY1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMZFoHEeS2WoXr83SnEA" name="sortedBy" type="_BafMFFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_BafMZVoHEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_BafMZloHEeS2WoXr83SnEA" name="lambda" type="_BafHkFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMZ1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMF1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafMaFoHEeS2WoXr83SnEA" name="Set" superClass="_BafJO1oHEeS2WoXr83SnEA" typedElement="_BafMbFoHEeS2WoXr83SnEA _BafMdFoHEeS2WoXr83SnEA _BafMd1oHEeS2WoXr83SnEA _BafMf1oHEeS2WoXr83SnEA _BafMgloHEeS2WoXr83SnEA _BafMj1oHEeS2WoXr83SnEA _BafMoFoHEeS2WoXr83SnEA _BafMpFoHEeS2WoXr83SnEA"
+ elementType="_BafMa1oHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafMaVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMaloHEeS2WoXr83SnEA" parameteredElement="_BafMa1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMa1oHEeS2WoXr83SnEA" name="T" templateParameter="_BafMaloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIQVoHEeS2WoXr83SnEA _BafItloHEeS2WoXr83SnEA _BafIzloHEeS2WoXr83SnEA _BafJPVoHEeS2WoXr83SnEA"
+ typedElement="_BafMgVoHEeS2WoXr83SnEA _BafMkloHEeS2WoXr83SnEA _BafMmVoHEeS2WoXr83SnEA _BafMn1oHEeS2WoXr83SnEA _BafMo1oHEeS2WoXr83SnEA _BafMp1oHEeS2WoXr83SnEA _BafMq1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOQ1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafORloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOSVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOTFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOT1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafI9VoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafI-FoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafI-1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafI_loHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJAVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJBFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJB1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJCloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJDVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHYloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHZVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHaFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHa1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHbloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="umlMM.xml#_BafOQloHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafORVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOSFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOS1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOTloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafI9FoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafI91oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafI-loHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafI_VoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJAFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJA1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJBloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJCVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJDFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHYVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHZFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHZ1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHaloHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHbVoHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_BafMbFoHEeS2WoXr83SnEA" name="-" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafMbVoHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_BafMbloHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMb1oHEeS2WoXr83SnEA" name="<>" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_BafMcFoHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMcVoHEeS2WoXr83SnEA" name="=" type="_BafJQ1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_BafMx1oHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafMcloHEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+ <ownedParameter xmi:id="_BafMc1oHEeS2WoXr83SnEA" name="object2" type="_BafLiVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMdFoHEeS2WoXr83SnEA" name="excluding" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_BafMdVoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+ <ownedParameter xmi:id="_BafMdloHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMd1oHEeS2WoXr83SnEA" name="excludingAll" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_BafMeFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_BafMeVoHEeS2WoXr83SnEA" name="objects" type="_BafIAFoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMeloHEeS2WoXr83SnEA" name="flatten" type="_BafJAloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_BafMe1oHEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].
If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_BafMfFoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMfVoHEeS2WoXr83SnEA" parameteredElement="_BafMfloHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMfloHEeS2WoXr83SnEA" name="T2" templateParameter="_BafMfVoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIOFoHEeS2WoXr83SnEA _BafJBFoHEeS2WoXr83SnEA _BafJNFoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMf1oHEeS2WoXr83SnEA" name="including" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_BafMgFoHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_BafMgVoHEeS2WoXr83SnEA" name="object" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMgloHEeS2WoXr83SnEA" name="includingAll" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_BafMg1oHEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_BafMhFoHEeS2WoXr83SnEA" name="objects" type="_BafIP1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMhVoHEeS2WoXr83SnEA" name="selectByKind" type="_BafJBVoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_BafMhloHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMh1oHEeS2WoXr83SnEA" parameteredElement="_BafMiFoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMiFoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMh1oHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIO1oHEeS2WoXr83SnEA _BafIfVoHEeS2WoXr83SnEA _BafJB1oHEeS2WoXr83SnEA _BafJN1oHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMiVoHEeS2WoXr83SnEA" name="type" type="_BafIe1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMiloHEeS2WoXr83SnEA" name="selectByType" type="_BafJCFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_BafMi1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMjFoHEeS2WoXr83SnEA" parameteredElement="_BafMjVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMjVoHEeS2WoXr83SnEA" name="TT" templateParameter="_BafMjFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIPloHEeS2WoXr83SnEA _BafIgFoHEeS2WoXr83SnEA _BafJCloHEeS2WoXr83SnEA _BafJOloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMjloHEeS2WoXr83SnEA" name="type" type="_BafIfloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMj1oHEeS2WoXr83SnEA" name="closure" type="_BafMaFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_BafMkFoHEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_BafMkVoHEeS2WoXr83SnEA" name="lambda" type="_BafHlloHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMkloHEeS2WoXr83SnEA" name="i" type="_BafMa1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMk1oHEeS2WoXr83SnEA" name="collectNested" type="_BafHuFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_BafMlFoHEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_BafMlVoHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMlloHEeS2WoXr83SnEA" parameteredElement="_BafMl1oHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMl1oHEeS2WoXr83SnEA" name="V" templateParameter="_BafMlloHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHuloHEeS2WoXr83SnEA _BafIMloHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMmFoHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHl1oHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMmVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMmloHEeS2WoXr83SnEA" name="collect" type="_BafHu1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_BafMm1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMnFoHEeS2WoXr83SnEA" parameteredElement="_BafMnVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMnVoHEeS2WoXr83SnEA" name="V" templateParameter="_BafMnFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafHvVoHEeS2WoXr83SnEA _BafINVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_BafMnloHEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_BafHmFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMn1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMoFoHEeS2WoXr83SnEA" name="reject" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_BafMoVoHEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_BafMoloHEeS2WoXr83SnEA" name="lambda" type="_BafHlFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMo1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMpFoHEeS2WoXr83SnEA" name="select" type="_BafMaFoHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_BafMpVoHEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+ <ownedParameter xmi:id="_BafMploHEeS2WoXr83SnEA" name="lambda" type="_BafHlFoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMp1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMqFoHEeS2WoXr83SnEA" name="sortedBy" type="_BafIzFoHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_BafMqVoHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_BafMqloHEeS2WoXr83SnEA" name="lambda" type="_BafHlVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMq1oHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMa1oHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafMrFoHEeS2WoXr83SnEA" name="State" superClass="_BafLi1oHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafMrVoHEeS2WoXr83SnEA" name="Type" superClass="_BafLmVoHEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafMrloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafIQloHEeS2WoXr83SnEA"
+ typedElement="_BafMsloHEeS2WoXr83SnEA _BafMvVoHEeS2WoXr83SnEA" elementType="_BafMsVoHEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_BafMr1oHEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_BafMsFoHEeS2WoXr83SnEA" parameteredElement="_BafMsVoHEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_BafMsVoHEeS2WoXr83SnEA" name="T" templateParameter="_BafMsFoHEeS2WoXr83SnEA"
+ templateParameterSubstitution="_BafIRFoHEeS2WoXr83SnEA _BafIuVoHEeS2WoXr83SnEA _BafI0VoHEeS2WoXr83SnEA _BafJDVoHEeS2WoXr83SnEA _BafJQFoHEeS2WoXr83SnEA"
+ typedElement="_BafMwVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOUloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOVVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOWFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOW1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="umlMM.xml#_BafOXloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJEFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJE1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJFloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJGVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJHFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJH1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJIloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJJVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJKFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJK1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJLloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJMVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJNFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJN1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJOloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJPVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_BafJQFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHcVoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHdFoHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHd1oHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHeloHEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="rdbmsMM.xml#_BafHfVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="umlMM.xml#_BafOUVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOVFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOV1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOWloHEeS2WoXr83SnEA"/>
+ <templateBinding href="umlMM.xml#_BafOXVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJD1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJEloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJFVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJGFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJG1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJHloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJIVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJJFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJJ1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJKloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJLVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJMFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJM1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJNloHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJOVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJPFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="#_BafJP1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHcFoHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHc1oHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHdloHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHeVoHEeS2WoXr83SnEA"/>
+ <templateBinding href="rdbmsMM.xml#_BafHfFoHEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_BafMsloHEeS2WoXr83SnEA" name="-" type="_BafMrloHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_BafMxVoHEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_BafMs1oHEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_BafMtFoHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMtVoHEeS2WoXr83SnEA" name="intersection" type="_BafJC1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_BafMtloHEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+ <ownedParameter xmi:id="_BafMt1oHEeS2WoXr83SnEA" name="c" type="_BafIQloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMuFoHEeS2WoXr83SnEA" name="symmetricDifference" type="_BafJC1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+ <ownedComment xmi:id="_BafMuVoHEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+ <ownedParameter xmi:id="_BafMuloHEeS2WoXr83SnEA" name="s" type="_BafJGloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BafMu1oHEeS2WoXr83SnEA" name="union" type="_BafJC1oHEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_BafMvFoHEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+ <ownedParameter xmi:id="_BafMvVoHEeS2WoXr83SnEA" name="s" type="_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_BafMvloHEeS2WoXr83SnEA" name="sortedBy" type="_BafIz1oHEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_BafMv1oHEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_BafMwFoHEeS2WoXr83SnEA" name="lambda" type="_BafHmVoHEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_BafMwVoHEeS2WoXr83SnEA" name="i" isRequired="false" type="_BafMsVoHEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedPrecedence xmi:id="_BafMwloHEeS2WoXr83SnEA" name="NAVIGATION"/>
+ <ownedPrecedence xmi:id="_BafMw1oHEeS2WoXr83SnEA" name="UNARY" order="1"/>
+ <ownedPrecedence xmi:id="_BafMxFoHEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+ <ownedPrecedence xmi:id="_BafMxVoHEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+ <ownedPrecedence xmi:id="_BafMxloHEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+ <ownedPrecedence xmi:id="_BafMx1oHEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+ <ownedPrecedence xmi:id="_BafMyFoHEeS2WoXr83SnEA" name="AND" order="6"/>
+ <ownedPrecedence xmi:id="_BafMyVoHEeS2WoXr83SnEA" name="OR" order="7"/>
+ <ownedPrecedence xmi:id="_BafMyloHEeS2WoXr83SnEA" name="XOR" order="8"/>
+ <ownedPrecedence xmi:id="_BafMy1oHEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.xml
new file mode 100644
index 0000000..f5c2f1e
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.xml
@@ -0,0 +1,984 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_BafMzFoHEeS2WoXr83SnEA" name="UmlToRdbms.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/UmlToRdbms.qvtr">
+ <ownedComment xmi:id="_BafMzVoHEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_BafMzloHEeS2WoXr83SnEA" name="UmlToRdbms">
+ <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_BafMz1oHEeS2WoXr83SnEA" name="PrimitiveTypeToSqlType">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_BafM0FoHEeS2WoXr83SnEA" name="primitiveType">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_BafM0VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafM0loHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM01oHEeS2WoXr83SnEA" referredVariable="_BafM0FoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM1FoHEeS2WoXr83SnEA" stringSymbol="INTEGER">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_BafM1VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafM1loHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM11oHEeS2WoXr83SnEA" referredVariable="_BafM0FoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM2FoHEeS2WoXr83SnEA" stringSymbol="BOOLEAN">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM2VoHEeS2WoXr83SnEA" stringSymbol="VARCHAR">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM2loHEeS2WoXr83SnEA" stringSymbol="BOOLEAN">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM21oHEeS2WoXr83SnEA" stringSymbol="NUMBER">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </queryExpression>
+ </ownedOperation>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <modelParameter xmi:id="_BafM3FoHEeS2WoXr83SnEA" name="uml">
+ <usedPackage href="umlMM.xml#_BafOFFoHEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <modelParameter xmi:id="_BafM3VoHEeS2WoXr83SnEA" name="rdbms">
+ <usedPackage href="rdbmsMM.xml#_BafHMVoHEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafM3loHEeS2WoXr83SnEA" name="PackageToSchema" isTopLevel="true" relationCallExp="_BafNF1oHEeS2WoXr83SnEA _BafN6VoHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM31oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+ rootVariable="_BafM6loHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafM4FoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM4VoHEeS2WoXr83SnEA" bindsTo="_BafM6loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafM4loHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOLFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM41oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafM6VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM5FoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+ rootVariable="_BafM61oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafM5VoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM5loHEeS2WoXr83SnEA" bindsTo="_BafM61oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafM51oHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHRVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM6FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafM6VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_BafM6VoHEeS2WoXr83SnEA" name="pn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafM6loHEeS2WoXr83SnEA" name="p" templateExp="_BafM4VoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafM61oHEeS2WoXr83SnEA" name="s" templateExp="_BafM5loHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </variable>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafM7FoHEeS2WoXr83SnEA" name="ClassToTable" isTopLevel="true" relationCallExp="_BafN7VoHEeS2WoXr83SnEA _BafN8VoHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM7VoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+ rootVariable="_BafND1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafM7loHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM71oHEeS2WoXr83SnEA" bindsTo="_BafND1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafM8FoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOJ1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM8VoHEeS2WoXr83SnEA" bindsTo="_BafNEFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ <referredClass href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafM8loHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafM81oHEeS2WoXr83SnEA" stringSymbol="Persistent">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafM9FoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM9VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafM9loHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+ rootVariable="_BafNEVoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafM91oHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM-FoHEeS2WoXr83SnEA" bindsTo="_BafNEVoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafM-VoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHTVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM-loHEeS2WoXr83SnEA" bindsTo="_BafNEloHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ <referredClass href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafM-1oHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHTFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafM_FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafM_VoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHSVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafM_loHEeS2WoXr83SnEA" bindsTo="_BafNE1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafM_1oHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNAFoHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNAVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNAloHEeS2WoXr83SnEA" stringSymbol="_tid">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNA1oHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNBFoHEeS2WoXr83SnEA" stringSymbol="NUMBER">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNBVoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHS1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNBloHEeS2WoXr83SnEA" bindsTo="_BafNFFoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNB1oHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHQFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNCFoHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNCVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNCloHEeS2WoXr83SnEA" stringSymbol="_pk">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNC1oHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHP1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNDFoHEeS2WoXr83SnEA" referredVariable="_BafNE1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_BafNDVoHEeS2WoXr83SnEA" name="cn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNDloHEeS2WoXr83SnEA" name="prefix" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafND1oHEeS2WoXr83SnEA" name="c" templateExp="_BafM71oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNEFoHEeS2WoXr83SnEA" name="p" templateExp="_BafM8VoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNEVoHEeS2WoXr83SnEA" name="t" templateExp="_BafM-FoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNEloHEeS2WoXr83SnEA" name="s" templateExp="_BafM-loHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNE1oHEeS2WoXr83SnEA" name="cl" templateExp="_BafM_loHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNFFoHEeS2WoXr83SnEA" name="k" templateExp="_BafNBloHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="_BafNFVoHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafNFloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNF1oHEeS2WoXr83SnEA" referredRelation="_BafM3loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNGFoHEeS2WoXr83SnEA" referredVariable="_BafNEFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNGVoHEeS2WoXr83SnEA" referredVariable="_BafNEloHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where xmi:id="_BafNGloHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafNG1oHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNHFoHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNHVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNHloHEeS2WoXr83SnEA" stringSymbol="">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafNH1oHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNIFoHEeS2WoXr83SnEA" referredRelation="_BafNJFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNIVoHEeS2WoXr83SnEA" referredVariable="_BafND1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNIloHEeS2WoXr83SnEA" referredVariable="_BafNEVoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNI1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNDloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNJFoHEeS2WoXr83SnEA" name="AttributeToColumn" relationCallExp="_BafNIFoHEeS2WoXr83SnEA _BafNl1oHEeS2WoXr83SnEA _BafNrVoHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNJVoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+ rootVariable="_BafNLloHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNJloHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNJ1oHEeS2WoXr83SnEA" bindsTo="_BafNLloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNKFoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+ rootVariable="_BafNL1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNKVoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNKloHEeS2WoXr83SnEA" bindsTo="_BafNL1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNK1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNMFoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNLFoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNLVoHEeS2WoXr83SnEA" bindsTo="_BafNMFoHEeS2WoXr83SnEA">
+ <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_BafNLloHEeS2WoXr83SnEA" name="c" templateExp="_BafNJ1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNL1oHEeS2WoXr83SnEA" name="t" templateExp="_BafNKloHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNMFoHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNLVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="_BafNMVoHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafNMloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNM1oHEeS2WoXr83SnEA" referredRelation="_BafNQVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNNFoHEeS2WoXr83SnEA" referredVariable="_BafNLloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNNVoHEeS2WoXr83SnEA" referredVariable="_BafNL1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNNloHEeS2WoXr83SnEA" referredVariable="_BafNMFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafNN1oHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNOFoHEeS2WoXr83SnEA" referredRelation="_BafNdloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNOVoHEeS2WoXr83SnEA" referredVariable="_BafNLloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNOloHEeS2WoXr83SnEA" referredVariable="_BafNL1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNO1oHEeS2WoXr83SnEA" referredVariable="_BafNMFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafNPFoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNPVoHEeS2WoXr83SnEA" referredRelation="_BafNm1oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNPloHEeS2WoXr83SnEA" referredVariable="_BafNLloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNP1oHEeS2WoXr83SnEA" referredVariable="_BafNL1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNQFoHEeS2WoXr83SnEA" referredVariable="_BafNMFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNQVoHEeS2WoXr83SnEA" name="PrimitiveAttributeToColumn" relationCallExp="_BafNM1oHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNQloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+ rootVariable="_BafNXVoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNQ1oHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNRFoHEeS2WoXr83SnEA" bindsTo="_BafNXVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNRVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOH1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNRloHEeS2WoXr83SnEA" bindsTo="_BafNXloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNR1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOG1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNSFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNSVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOHVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNSloHEeS2WoXr83SnEA" bindsTo="_BafNX1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOLloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNS1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNTFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOLloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNTVoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+ rootVariable="_BafNYFoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNTloHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNT1oHEeS2WoXr83SnEA" bindsTo="_BafNYFoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNUFoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHSVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNUVoHEeS2WoXr83SnEA" bindsTo="_BafNYVoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNUloHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNU1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNW1oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNVFoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNVVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNXFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNVloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNYloHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNV1oHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNWFoHEeS2WoXr83SnEA" bindsTo="_BafNYloHEeS2WoXr83SnEA">
+ <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_BafNWVoHEeS2WoXr83SnEA" name="an" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNWloHEeS2WoXr83SnEA" name="pn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNW1oHEeS2WoXr83SnEA" name="cn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNXFoHEeS2WoXr83SnEA" name="sqltype" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNXVoHEeS2WoXr83SnEA" name="c" templateExp="_BafNRFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNXloHEeS2WoXr83SnEA" name="a" templateExp="_BafNRloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNX1oHEeS2WoXr83SnEA" name="p" templateExp="_BafNSloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOLloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNYFoHEeS2WoXr83SnEA" name="t" templateExp="_BafNT1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNYVoHEeS2WoXr83SnEA" name="cl" templateExp="_BafNUVoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNYloHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNWFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="_BafNY1oHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafNZFoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNZVoHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNZloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNW1oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:IfExp" xmi:id="_BafNZ1oHEeS2WoXr83SnEA" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNaFoHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNaVoHEeS2WoXr83SnEA" referredVariable="_BafNYloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNaloHEeS2WoXr83SnEA" stringSymbol="">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNa1oHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNbFoHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNbVoHEeS2WoXr83SnEA" referredVariable="_BafNYloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNbloHEeS2WoXr83SnEA" stringSymbol="_">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNb1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNcFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafNcVoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNcloHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNc1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNXFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNdFoHEeS2WoXr83SnEA" referredOperation="_BafMz1oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNdVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNWloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNdloHEeS2WoXr83SnEA" name="ComplexAttributeToColumn" relationCallExp="_BafNOFoHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNd1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+ rootVariable="_BafNiFoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNeFoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNeVoHEeS2WoXr83SnEA" bindsTo="_BafNiFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNeloHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOH1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNe1oHEeS2WoXr83SnEA" bindsTo="_BafNiVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNfFoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOG1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNfVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNhloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNfloHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOHVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNf1oHEeS2WoXr83SnEA" bindsTo="_BafNiloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNgFoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+ rootVariable="_BafNi1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNgVoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNgloHEeS2WoXr83SnEA" bindsTo="_BafNi1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNg1oHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNjFoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNhFoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNhVoHEeS2WoXr83SnEA" bindsTo="_BafNjFoHEeS2WoXr83SnEA">
+ <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_BafNhloHEeS2WoXr83SnEA" name="an" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNh1oHEeS2WoXr83SnEA" name="newPrefix" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNiFoHEeS2WoXr83SnEA" name="c" templateExp="_BafNeVoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNiVoHEeS2WoXr83SnEA" name="a" templateExp="_BafNe1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOGloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNiloHEeS2WoXr83SnEA" name="tc" templateExp="_BafNf1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNi1oHEeS2WoXr83SnEA" name="t" templateExp="_BafNgloHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNjFoHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNhVoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="_BafNjVoHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafNjloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNj1oHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNkFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNh1oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNkVoHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafNkloHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNk1oHEeS2WoXr83SnEA" referredVariable="_BafNjFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNlFoHEeS2WoXr83SnEA" stringSymbol="_">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNlVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNhloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafNlloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNl1oHEeS2WoXr83SnEA" referredRelation="_BafNJFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNmFoHEeS2WoXr83SnEA" referredVariable="_BafNiloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNmVoHEeS2WoXr83SnEA" referredVariable="_BafNi1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNmloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafNh1oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNm1oHEeS2WoXr83SnEA" name="SuperAttributeToColumn" relationCallExp="_BafNPVoHEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNnFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+ rootVariable="_BafNp1oHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNnVoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNnloHEeS2WoXr83SnEA" bindsTo="_BafNp1oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNn1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOIVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNoFoHEeS2WoXr83SnEA" bindsTo="_BafNqFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNoVoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+ rootVariable="_BafNqVoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNoloHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNo1oHEeS2WoXr83SnEA" bindsTo="_BafNqVoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ <referredClass href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNpFoHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" rootVariable="_BafNqloHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNpVoHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNploHEeS2WoXr83SnEA" bindsTo="_BafNqloHEeS2WoXr83SnEA">
+ <referredClass href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_BafNp1oHEeS2WoXr83SnEA" name="c" templateExp="_BafNnloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNqFoHEeS2WoXr83SnEA" name="sc" templateExp="_BafNoFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNqVoHEeS2WoXr83SnEA" name="t" templateExp="_BafNo1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafNqloHEeS2WoXr83SnEA" name="prefix" templateExp="_BafNploHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <where xmi:id="_BafNq1oHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafNrFoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafNrVoHEeS2WoXr83SnEA" referredRelation="_BafNJFoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNrloHEeS2WoXr83SnEA" referredVariable="_BafNqFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNr1oHEeS2WoXr83SnEA" referredVariable="_BafNqVoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNsFoHEeS2WoXr83SnEA" referredVariable="_BafNqloHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_BafNsVoHEeS2WoXr83SnEA" name="AssocToFKey" isTopLevel="true">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNsloHEeS2WoXr83SnEA" isCheckable="true" isEnforceable="false" typedModel="_BafM3FoHEeS2WoXr83SnEA"
+ rootVariable="_BafN4FoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNs1oHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNtFoHEeS2WoXr83SnEA" bindsTo="_BafN4FoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOFVoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNtVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOF1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNtloHEeS2WoXr83SnEA" bindsTo="_BafN4VoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ <referredClass href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNt1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOFloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNuFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN21oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNuVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOGFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNuloHEeS2WoXr83SnEA" bindsTo="_BafN4loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNu1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNvFoHEeS2WoXr83SnEA" stringSymbol="Persistent">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNvVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNvloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3FoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNv1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOGVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNwFoHEeS2WoXr83SnEA" bindsTo="_BafN41oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNwVoHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOIloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafNwloHEeS2WoXr83SnEA" stringSymbol="Persistent">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNw1oHEeS2WoXr83SnEA">
+ <referredProperty href="umlMM.xml#_BafOJloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNxFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="umlMM.xml#_BafOFVoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_BafNxVoHEeS2WoXr83SnEA" isCheckable="false" isEnforceable="true" typedModel="_BafM3VoHEeS2WoXr83SnEA"
+ rootVariable="_BafN5FoHEeS2WoXr83SnEA">
+ <pattern xmi:id="_BafNxloHEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNx1oHEeS2WoXr83SnEA" bindsTo="_BafN5FoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafNyFoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHPVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNyVoHEeS2WoXr83SnEA" bindsTo="_BafN5VoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ <referredClass href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNyloHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHOloHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNy1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNzFoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHO1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafNzVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2FoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafNzloHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHOVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_BafNz1oHEeS2WoXr83SnEA" bindsTo="_BafN5loHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ <part xmi:id="_BafN0FoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN0VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN31oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafN0loHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHNFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafN01oHEeS2WoXr83SnEA" stringSymbol="NUMBER">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafN1FoHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHNVoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN1VoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2FoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_BafN1loHEeS2WoXr83SnEA">
+ <referredProperty href="rdbmsMM.xml#_BafHPFoHEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN11oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2loHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_BafN2FoHEeS2WoXr83SnEA" name="srcTbl" isRequired="false">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN2VoHEeS2WoXr83SnEA" name="destTbl" isRequired="false">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN2loHEeS2WoXr83SnEA" name="pKey" isRequired="false">
+ <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN21oHEeS2WoXr83SnEA" name="an" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN3FoHEeS2WoXr83SnEA" name="scn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN3VoHEeS2WoXr83SnEA" name="dcn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN3loHEeS2WoXr83SnEA" name="fkn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN31oHEeS2WoXr83SnEA" name="fcn" isRequired="false">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN4FoHEeS2WoXr83SnEA" name="a" templateExp="_BafNtFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOFVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN4VoHEeS2WoXr83SnEA" name="p" templateExp="_BafNtloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN4loHEeS2WoXr83SnEA" name="sc" templateExp="_BafNuloHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN41oHEeS2WoXr83SnEA" name="dc" templateExp="_BafNwFoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN5FoHEeS2WoXr83SnEA" name="fk" templateExp="_BafNx1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN5VoHEeS2WoXr83SnEA" name="s" templateExp="_BafNyVoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_BafN5loHEeS2WoXr83SnEA" name="fc" templateExp="_BafNz1oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="_BafN51oHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafN6FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafN6VoHEeS2WoXr83SnEA" referredRelation="_BafM3loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN6loHEeS2WoXr83SnEA" referredVariable="_BafN4VoHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOKVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN61oHEeS2WoXr83SnEA" referredVariable="_BafN5VoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHQ1oHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafN7FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafN7VoHEeS2WoXr83SnEA" referredRelation="_BafM7FoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN7loHEeS2WoXr83SnEA" referredVariable="_BafN4loHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN71oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2FoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafN8FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_BafN8VoHEeS2WoXr83SnEA" referredRelation="_BafM7FoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN8loHEeS2WoXr83SnEA" referredVariable="_BafN41oHEeS2WoXr83SnEA">
+ <type href="umlMM.xml#_BafOHloHEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN81oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2VoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafN9FoHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN9VoHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN9loHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2loHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:PropertyCallExp" xmi:id="_BafN91oHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN-FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN2VoHEeS2WoXr83SnEA">
+ <type href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ </source>
+ <referredProperty href="rdbmsMM.xml#_BafHS1oHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafLFloHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where xmi:id="_BafN-VoHEeS2WoXr83SnEA">
+ <predicate xmi:id="_BafN-loHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN-1oHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafN_FoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN_VoHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN_loHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafN_1oHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafOAFoHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOAVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3FoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafOAloHEeS2WoXr83SnEA" stringSymbol="_">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOA1oHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN21oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafOBFoHEeS2WoXr83SnEA" stringSymbol="_">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOBVoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3VoHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ <predicate xmi:id="_BafOBloHEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafOB1oHEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_BafJQ1oHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOCFoHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN31oHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_BafOCVoHEeS2WoXr83SnEA" name="+">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_BafOCloHEeS2WoXr83SnEA" isRequired="false" referredVariable="_BafN3loHEeS2WoXr83SnEA">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_BafOC1oHEeS2WoXr83SnEA" stringSymbol="_tid">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJtloHEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_BafJwVoHEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <ownedKey xmi:id="_BafODFoHEeS2WoXr83SnEA">
+ <identifies href="rdbmsMM.xml#_BafHSFoHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHTFoHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHTVoHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_BafODVoHEeS2WoXr83SnEA">
+ <identifies href="rdbmsMM.xml#_BafHMloHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHM1oHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHNVoHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_BafODloHEeS2WoXr83SnEA">
+ <identifies href="rdbmsMM.xml#_BafHPloHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHQFoHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHQVoHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_BafOD1oHEeS2WoXr83SnEA">
+ <identifies href="rdbmsMM.xml#_BafHOFoHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHOloHEeS2WoXr83SnEA"/>
+ <part href="rdbmsMM.xml#_BafHO1oHEeS2WoXr83SnEA"/>
+ </ownedKey>
+ </nestedPackage>
+ <unit xmi:id="_BafOEFoHEeS2WoXr83SnEA" name="umlMM">
+ <ownedComment xmi:id="_BafOEVoHEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <usedPackage xmi:type="flatemofqvt:Package" href="umlMM.xml#_BafOFFoHEeS2WoXr83SnEA"/>
+ </unit>
+ <unit xmi:id="_BafOEloHEeS2WoXr83SnEA" name="rdbmsMM">
+ <usedPackage xmi:type="flatemofqvt:Package" href="rdbmsMM.xml#_BafHMVoHEeS2WoXr83SnEA"/>
+ </unit>
+</flatemofqvt:RelationModel>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.xml
new file mode 100644
index 0000000..27bb864
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.xml
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_BafHMFoHEeS2WoXr83SnEA" name="rdbmsMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/rdbmsMM.emof">
+ <nestedPackage xmi:id="_BafHMVoHEeS2WoXr83SnEA" name="rdbmsMM" nsURI="rdbmsMM">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHMloHEeS2WoXr83SnEA" name="Column" templateParameterSubstitution="_BafHU1oHEeS2WoXr83SnEA _BafHYloHEeS2WoXr83SnEA _BafHcVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafHM1oHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafODVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafM_1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNUloHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafN0FoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHNFoHEeS2WoXr83SnEA" name="type">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNA1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNVFoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafN0loHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHNVoHEeS2WoXr83SnEA" name="owner" type="_BafHSFoHEeS2WoXr83SnEA" opposite="_BafHSVoHEeS2WoXr83SnEA">
+ <key href="UmlToRdbms.xml#_BafODVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafN1FoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHNloHEeS2WoXr83SnEA" name="hasKey" type="_BafHZloHEeS2WoXr83SnEA" opposite="_BafHP1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafHN1oHEeS2WoXr83SnEA" name="hasForeignKey" type="_BafHY1oHEeS2WoXr83SnEA" opposite="_BafHOVoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM_loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNDFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNE1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNUVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNYVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNz1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN5loHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafODVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHOFoHEeS2WoXr83SnEA" name="ForeignKey" templateParameterSubstitution="_BafHVloHEeS2WoXr83SnEA _BafHZVoHEeS2WoXr83SnEA _BafHdFoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafHOVoHEeS2WoXr83SnEA" name="column" type="_BafHYFoHEeS2WoXr83SnEA" opposite="_BafHN1oHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNzloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHOloHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafOD1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNyloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHO1oHEeS2WoXr83SnEA" name="owner" type="_BafHSFoHEeS2WoXr83SnEA" opposite="_BafHSloHEeS2WoXr83SnEA">
+ <key href="UmlToRdbms.xml#_BafOD1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNzFoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHPFoHEeS2WoXr83SnEA" name="refersTo" type="_BafHPloHEeS2WoXr83SnEA" opposite="_BafHQloHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafN1loHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHPVoHEeS2WoXr83SnEA" name="schema" type="_BafHQ1oHEeS2WoXr83SnEA" opposite="_BafHRFoHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNyFoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNx1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN5FoHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafOD1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHPloHEeS2WoXr83SnEA" name="Key" templateParameterSubstitution="_BafHWVoHEeS2WoXr83SnEA _BafHaFoHEeS2WoXr83SnEA _BafHd1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafHP1oHEeS2WoXr83SnEA" name="column" type="_BafHYFoHEeS2WoXr83SnEA" opposite="_BafHNloHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNC1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHQFoHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafODloHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNB1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHQVoHEeS2WoXr83SnEA" name="owner" type="_BafHSFoHEeS2WoXr83SnEA" opposite="_BafHS1oHEeS2WoXr83SnEA">
+ <key href="UmlToRdbms.xml#_BafODloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHQloHEeS2WoXr83SnEA" name="referedBy" type="_BafHY1oHEeS2WoXr83SnEA" opposite="_BafHPFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafHPFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafHS1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNBloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNFFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN11oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN2loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN9loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:PropertyCallExp" href="UmlToRdbms.xml#_BafN91oHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafODloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHQ1oHEeS2WoXr83SnEA" name="Schema" templateParameterSubstitution="_BafHXFoHEeS2WoXr83SnEA _BafHa1oHEeS2WoXr83SnEA _BafHeloHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafHRFoHEeS2WoXr83SnEA" name="foreignKey" type="_BafHY1oHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHPVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafHRVoHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafM51oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHRloHEeS2WoXr83SnEA" name="table" type="_BafHbFoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHTVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafHR1oHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_BafHTloHEeS2WoXr83SnEA" implicit="true"
+ opposite="_BafHT1oHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafHPVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafHTVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM5loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafM61oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM-loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNEloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNGVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNyVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN5VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN61oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHSFoHEeS2WoXr83SnEA" name="Table" templateParameterSubstitution="_BafHX1oHEeS2WoXr83SnEA _BafHbloHEeS2WoXr83SnEA _BafHfVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafHSVoHEeS2WoXr83SnEA" name="column" type="_BafHYFoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHNVoHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafM_VoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNUFoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHSloHEeS2WoXr83SnEA" name="hasForeignKey" type="_BafHY1oHEeS2WoXr83SnEA" opposite="_BafHO1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafHS1oHEeS2WoXr83SnEA" name="hasKey" type="_BafHPloHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHQVoHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNBVoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHTFoHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafODFoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafM-1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafHTVoHEeS2WoXr83SnEA" name="schema" type="_BafHQ1oHEeS2WoXr83SnEA" opposite="_BafHRloHEeS2WoXr83SnEA">
+ <key href="UmlToRdbms.xml#_BafODFoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafM-VoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafHNVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafHO1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafHQVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM-FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNEVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNIloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNKloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNL1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNNVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNOloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNP1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNT1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNYFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNgloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNi1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNmVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNo1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNqVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNr1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNzVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN1VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN2FoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN2VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN71oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN81oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN-FoHEeS2WoXr83SnEA"/>
+ <key href="UmlToRdbms.xml#_BafODFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafHTloHEeS2WoXr83SnEA" name="dummy" typedElement="_BafHR1oHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafHT1oHEeS2WoXr83SnEA" name="containsSchema" type="_BafHaVoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafHR1oHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_BafHUFoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHUVoHEeS2WoXr83SnEA" name="Collection" elementType="_BafHMloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHUloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHU1oHEeS2WoXr83SnEA" actual="_BafHMloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHVFoHEeS2WoXr83SnEA" name="Collection" elementType="_BafHOFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHVVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHVloHEeS2WoXr83SnEA" actual="_BafHOFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHV1oHEeS2WoXr83SnEA" name="Collection" elementType="_BafHPloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHWFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHWVoHEeS2WoXr83SnEA" actual="_BafHPloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHWloHEeS2WoXr83SnEA" name="Collection" elementType="_BafHQ1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHW1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHXFoHEeS2WoXr83SnEA" actual="_BafHQ1oHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHXVoHEeS2WoXr83SnEA" name="Collection" elementType="_BafHSFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHXloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHX1oHEeS2WoXr83SnEA" actual="_BafHSFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHYFoHEeS2WoXr83SnEA" name="Set" superClass="_BafHb1oHEeS2WoXr83SnEA" typedElement="_BafHOVoHEeS2WoXr83SnEA _BafHP1oHEeS2WoXr83SnEA _BafHSVoHEeS2WoXr83SnEA"
+ elementType="_BafHMloHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafHYVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHYloHEeS2WoXr83SnEA" actual="_BafHMloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHY1oHEeS2WoXr83SnEA" name="Set" superClass="_BafHcloHEeS2WoXr83SnEA" typedElement="_BafHN1oHEeS2WoXr83SnEA _BafHQloHEeS2WoXr83SnEA _BafHRFoHEeS2WoXr83SnEA _BafHSloHEeS2WoXr83SnEA"
+ elementType="_BafHOFoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafHZFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHZVoHEeS2WoXr83SnEA" actual="_BafHOFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHZloHEeS2WoXr83SnEA" name="Set" superClass="_BafHdVoHEeS2WoXr83SnEA" typedElement="_BafHNloHEeS2WoXr83SnEA"
+ elementType="_BafHPloHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafHZ1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHaFoHEeS2WoXr83SnEA" actual="_BafHPloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHaVoHEeS2WoXr83SnEA" name="Set" superClass="_BafHeFoHEeS2WoXr83SnEA" typedElement="_BafHT1oHEeS2WoXr83SnEA"
+ elementType="_BafHQ1oHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafHaloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHa1oHEeS2WoXr83SnEA" actual="_BafHQ1oHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafHbFoHEeS2WoXr83SnEA" name="Set" superClass="_BafHe1oHEeS2WoXr83SnEA" typedElement="_BafHRloHEeS2WoXr83SnEA"
+ elementType="_BafHSFoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafHbVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHbloHEeS2WoXr83SnEA" actual="_BafHSFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHb1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHUVoHEeS2WoXr83SnEA"
+ elementType="_BafHMloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHcFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHcVoHEeS2WoXr83SnEA" actual="_BafHMloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHcloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHVFoHEeS2WoXr83SnEA"
+ elementType="_BafHOFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHc1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHdFoHEeS2WoXr83SnEA" actual="_BafHOFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHdVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHV1oHEeS2WoXr83SnEA"
+ elementType="_BafHPloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHdloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHd1oHEeS2WoXr83SnEA" actual="_BafHPloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHeFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHWloHEeS2WoXr83SnEA"
+ elementType="_BafHQ1oHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHeVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHeloHEeS2WoXr83SnEA" actual="_BafHQ1oHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafHe1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafHXVoHEeS2WoXr83SnEA"
+ elementType="_BafHSFoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafHfFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafHfVoHEeS2WoXr83SnEA" actual="_BafHSFoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.xml
new file mode 100644
index 0000000..aeff49e
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_BafOE1oHEeS2WoXr83SnEA" name="umlMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRdbms/umlMM.emof">
+ <nestedPackage xmi:id="_BafOFFoHEeS2WoXr83SnEA" name="umlMM" nsURI="umlMM">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOFVoHEeS2WoXr83SnEA" name="Association" templateParameterSubstitution="_BafONFoHEeS2WoXr83SnEA _BafOQ1oHEeS2WoXr83SnEA _BafOUloHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafOFloHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNt1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOF1oHEeS2WoXr83SnEA" name="namespace" type="_BafOKVoHEeS2WoXr83SnEA" opposite="_BafOKloHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNtVoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOGFoHEeS2WoXr83SnEA" name="source" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOI1oHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNuVoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOGVoHEeS2WoXr83SnEA" name="destination" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOIFoHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNv1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNtFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN4FoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOGloHEeS2WoXr83SnEA" name="Attribute" templateParameterSubstitution="_BafON1oHEeS2WoXr83SnEA _BafORloHEeS2WoXr83SnEA _BafOVVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafOG1oHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNR1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNfFoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOHFoHEeS2WoXr83SnEA" name="owner" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOH1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafOHVoHEeS2WoXr83SnEA" name="type" type="_BafOJVoHEeS2WoXr83SnEA" opposite="_BafOKFoHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNSVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNfloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNRloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNXloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNe1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNiVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOHloHEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="_BafOOloHEeS2WoXr83SnEA _BafOSVoHEeS2WoXr83SnEA _BafOWFoHEeS2WoXr83SnEA"
+ superClass="_BafOJVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafOH1oHEeS2WoXr83SnEA" name="attribute" type="_BafORFoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOHFoHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNRVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNeloHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOIFoHEeS2WoXr83SnEA" name="destinationOf" type="_BafOQVoHEeS2WoXr83SnEA" opposite="_BafOGVoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafOIVoHEeS2WoXr83SnEA" name="general" type="_BafOHloHEeS2WoXr83SnEA" opposite="_BafOJFoHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafNn1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOIloHEeS2WoXr83SnEA" name="kind">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafM8loHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNu1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNwVoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOI1oHEeS2WoXr83SnEA" name="sourceOf" type="_BafOQVoHEeS2WoXr83SnEA" opposite="_BafOGFoHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafOJFoHEeS2WoXr83SnEA" name="subclass" type="_BafOR1oHEeS2WoXr83SnEA" opposite="_BafOIVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafOGFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafOGVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafOHFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafOIVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM71oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafND1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNIVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNJ1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNLloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNNFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNOVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNPloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNRFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNXVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNeVoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNf1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNiFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNiloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNmFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNnloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNoFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNp1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNqFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNrloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNuloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNwFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN4loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN41oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN7loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN8loHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOJVoHEeS2WoXr83SnEA" name="Classifier" templateParameterSubstitution="_BafOPVoHEeS2WoXr83SnEA _BafOTFoHEeS2WoXr83SnEA _BafOW1oHEeS2WoXr83SnEA"
+ typedElement="_BafOHVoHEeS2WoXr83SnEA" isAbstract="true">
+ <ownedAttribute xmi:id="_BafOJloHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafM9FoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNS1oHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNvVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafNw1oHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOJ1oHEeS2WoXr83SnEA" name="namespace" type="_BafOKVoHEeS2WoXr83SnEA" opposite="_BafOK1oHEeS2WoXr83SnEA">
+ <propertyItem href="UmlToRdbms.xml#_BafM8FoHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOKFoHEeS2WoXr83SnEA" name="typeOf" type="_BafORFoHEeS2WoXr83SnEA" opposite="_BafOHVoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOKVoHEeS2WoXr83SnEA" name="Package" templateParameterSubstitution="_BafOQFoHEeS2WoXr83SnEA _BafOT1oHEeS2WoXr83SnEA _BafOXloHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafOKloHEeS2WoXr83SnEA" name="association" type="_BafOQVoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOF1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafOK1oHEeS2WoXr83SnEA" name="classifier" type="_BafOSloHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOJ1oHEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_BafOLFoHEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_BafJtVoHEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRdbms.xml#_BafM4loHEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BafOLVoHEeS2WoXr83SnEA" name="dummy" isRequired="false" type="_BafOL1oHEeS2WoXr83SnEA" implicit="true"
+ opposite="_BafOMFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafOF1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_BafOJ1oHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM4VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafM6loHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafM8VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNEFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafNGFoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNtloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafN4VoHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRdbms.xml#_BafN6loHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOLloHEeS2WoXr83SnEA" name="PrimitiveDataType" superClass="_BafOJVoHEeS2WoXr83SnEA">
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRdbms.xml#_BafNSloHEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRdbms.xml#_BafNX1oHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_BafOL1oHEeS2WoXr83SnEA" name="dummy" typedElement="_BafOLVoHEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_BafOMFoHEeS2WoXr83SnEA" name="containsPackage" type="_BafOTVoHEeS2WoXr83SnEA" isComposite="true" opposite="_BafOLVoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLUFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_BafOMVoHEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOMloHEeS2WoXr83SnEA" name="Collection" elementType="_BafOFVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOM1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafONFoHEeS2WoXr83SnEA" actual="_BafOFVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafONVoHEeS2WoXr83SnEA" name="Collection" elementType="_BafOGloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafONloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafON1oHEeS2WoXr83SnEA" actual="_BafOGloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOOFoHEeS2WoXr83SnEA" name="Collection" elementType="_BafOHloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOOVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOOloHEeS2WoXr83SnEA" actual="_BafOHloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOO1oHEeS2WoXr83SnEA" name="Collection" elementType="_BafOJVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOPFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOPVoHEeS2WoXr83SnEA" actual="_BafOJVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOPloHEeS2WoXr83SnEA" name="Collection" elementType="_BafOKVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOP1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOQFoHEeS2WoXr83SnEA" actual="_BafOKVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafKYloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafKYVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafKYFoHEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_BafLEVoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOQVoHEeS2WoXr83SnEA" name="Set" superClass="_BafOUFoHEeS2WoXr83SnEA" typedElement="_BafOIFoHEeS2WoXr83SnEA _BafOI1oHEeS2WoXr83SnEA _BafOKloHEeS2WoXr83SnEA"
+ elementType="_BafOFVoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafOQloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOQ1oHEeS2WoXr83SnEA" actual="_BafOFVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafORFoHEeS2WoXr83SnEA" name="Set" superClass="_BafOU1oHEeS2WoXr83SnEA" typedElement="_BafOH1oHEeS2WoXr83SnEA _BafOKFoHEeS2WoXr83SnEA"
+ elementType="_BafOGloHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafORVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafORloHEeS2WoXr83SnEA" actual="_BafOGloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOR1oHEeS2WoXr83SnEA" name="Set" superClass="_BafOVloHEeS2WoXr83SnEA" typedElement="_BafOJFoHEeS2WoXr83SnEA"
+ elementType="_BafOHloHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafOSFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOSVoHEeS2WoXr83SnEA" actual="_BafOHloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOSloHEeS2WoXr83SnEA" name="Set" superClass="_BafOWVoHEeS2WoXr83SnEA" typedElement="_BafOK1oHEeS2WoXr83SnEA"
+ elementType="_BafOJVoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafOS1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOTFoHEeS2WoXr83SnEA" actual="_BafOJVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_BafOTVoHEeS2WoXr83SnEA" name="Set" superClass="_BafOXFoHEeS2WoXr83SnEA" typedElement="_BafOMFoHEeS2WoXr83SnEA"
+ elementType="_BafOKVoHEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_BafOTloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOT1oHEeS2WoXr83SnEA" actual="_BafOKVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMaloHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMaVoHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_BafMaFoHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOUFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOMloHEeS2WoXr83SnEA"
+ elementType="_BafOFVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOUVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOUloHEeS2WoXr83SnEA" actual="_BafOFVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOU1oHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafONVoHEeS2WoXr83SnEA"
+ elementType="_BafOGloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOVFoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOVVoHEeS2WoXr83SnEA" actual="_BafOGloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOVloHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOOFoHEeS2WoXr83SnEA"
+ elementType="_BafOHloHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOV1oHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOWFoHEeS2WoXr83SnEA" actual="_BafOHloHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOWVoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOO1oHEeS2WoXr83SnEA"
+ elementType="_BafOJVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOWloHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOW1oHEeS2WoXr83SnEA" actual="_BafOJVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_BafOXFoHEeS2WoXr83SnEA" name="UniqueCollection" superClass="_BafOPloHEeS2WoXr83SnEA"
+ elementType="_BafOKVoHEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_BafOXVoHEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_BafOXloHEeS2WoXr83SnEA" actual="_BafOKVoHEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_BafMsFoHEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_BafMr1oHEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_BafMrloHEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/OCL.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/OCL.xml
new file mode 100644
index 0000000..ed4c2fe
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/OCL.xml
@@ -0,0 +1,2777 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_-sSbr1oGEeS2WoXr83SnEA" name="OCL.oclstdlib" externalURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <nestedPackage xmi:id="_-sSbsFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbsVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPCVoGEeS2WoXr83SnEA _-scPDVoGEeS2WoXr83SnEA"
+ contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbsloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scO_1oGEeS2WoXr83SnEA"
+ contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scO_loGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbs1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPBVoGEeS2WoXr83SnEA"
+ contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scPBFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbtFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPEVoGEeS2WoXr83SnEA"
+ contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbtVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scO-FoGEeS2WoXr83SnEA"
+ contextType="_-scO1VoGEeS2WoXr83SnEA" resultType="_-scNqloGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbtloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPeloGEeS2WoXr83SnEA _-scPi1oGEeS2WoXr83SnEA _-scPkFoGEeS2WoXr83SnEA _-scPk1oGEeS2WoXr83SnEA _-scPmFoGEeS2WoXr83SnEA _-scPp1oGEeS2WoXr83SnEA _-scPq1oGEeS2WoXr83SnEA _-scPr1oGEeS2WoXr83SnEA"
+ contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbt1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPgVoGEeS2WoXr83SnEA"
+ contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPgFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbuFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPiFoGEeS2WoXr83SnEA"
+ contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPh1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbuVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPoloGEeS2WoXr83SnEA"
+ contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPoVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbuloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scPnFoGEeS2WoXr83SnEA _-scPs1oGEeS2WoXr83SnEA"
+ contextType="_-scPF1oGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbu1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQvloGEeS2WoXr83SnEA _-scQwloGEeS2WoXr83SnEA"
+ contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbvFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQxloGEeS2WoXr83SnEA"
+ contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbvVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQrVoGEeS2WoXr83SnEA"
+ contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scQc1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbvloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQtFoGEeS2WoXr83SnEA"
+ contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scQs1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbv1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scQuloGEeS2WoXr83SnEA"
+ contextType="_-scQdloGEeS2WoXr83SnEA" resultType="_-scQuVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbwFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scREloGEeS2WoXr83SnEA _-scRFloGEeS2WoXr83SnEA"
+ contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbwVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRGloGEeS2WoXr83SnEA"
+ contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbwloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRAVoGEeS2WoXr83SnEA"
+ contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scNfVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbw1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRCFoGEeS2WoXr83SnEA"
+ contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scRB1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbxFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRDloGEeS2WoXr83SnEA"
+ contextType="_-scQy1oGEeS2WoXr83SnEA" resultType="_-scRDVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbxVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRVloGEeS2WoXr83SnEA _-scRWloGEeS2WoXr83SnEA"
+ contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scN91oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbxloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRXloGEeS2WoXr83SnEA"
+ contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbx1oGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRRVoGEeS2WoXr83SnEA"
+ contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scRHFoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbyFoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRTFoGEeS2WoXr83SnEA"
+ contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scRS1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbyVoGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRUloGEeS2WoXr83SnEA"
+ contextType="_-scRH1oGEeS2WoXr83SnEA" resultType="_-scRUVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:LambdaType" xmi:id="_-sSbyloGEeS2WoXr83SnEA" name="Lambda" superClass="_-scQMVoGEeS2WoXr83SnEA" typedElement="_-scRdFoGEeS2WoXr83SnEA"
+ contextType="_-scRZVoGEeS2WoXr83SnEA" resultType="_-scPxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:TupleType" xmi:id="_-sSby1oGEeS2WoXr83SnEA" name="Tuple" templateParameterSubstitution="_-sSb91oGEeS2WoXr83SnEA _-scNqVoGEeS2WoXr83SnEA _-scNxFoGEeS2WoXr83SnEA"
+ superClass="_-scQR1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-sSbzFoGEeS2WoXr83SnEA" name="first" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_-sSbzVoGEeS2WoXr83SnEA" name="second" type="_-scPZVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSbzloGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-sSb-FoGEeS2WoXr83SnEA" typedElement="_-scO-loGEeS2WoXr83SnEA" elementType="_-scO_loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSbz1oGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb0FoGEeS2WoXr83SnEA" actual="_-scO_loGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb0VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-sSb-1oGEeS2WoXr83SnEA" typedElement="_-scPAVoGEeS2WoXr83SnEA" elementType="_-scPBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb0loGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb01oGEeS2WoXr83SnEA" actual="_-scPBFoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb1FoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-sSb_loGEeS2WoXr83SnEA" typedElement="_-scO4VoGEeS2WoXr83SnEA" elementType="_-scO5VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb1VoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb1loGEeS2WoXr83SnEA" actual="_-scO5VoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb11oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-sScAVoGEeS2WoXr83SnEA" typedElement="_-scO7FoGEeS2WoXr83SnEA" elementType="_-scO71oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb2FoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb2VoGEeS2WoXr83SnEA" actual="_-scO71oGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb2loGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-sScBFoGEeS2WoXr83SnEA" typedElement="_-scO8VoGEeS2WoXr83SnEA" elementType="_-scO9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb21oGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb3FoGEeS2WoXr83SnEA" actual="_-scO9FoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb3VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-scMpVoGEeS2WoXr83SnEA" typedElement="_-scPJVoGEeS2WoXr83SnEA _-scPU1oGEeS2WoXr83SnEA _-scPdVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb3loGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb31oGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb4FoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-scMqFoGEeS2WoXr83SnEA" typedElement="_-scPGFoGEeS2WoXr83SnEA" elementType="_-scPFFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb4VoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb4loGEeS2WoXr83SnEA" actual="_-scPFFoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb41oGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-scMrloGEeS2WoXr83SnEA" typedElement="_-scPvVoGEeS2WoXr83SnEA" elementType="_-scPtVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb5FoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb5VoGEeS2WoXr83SnEA" actual="_-scPtVoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb5loGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-scMsVoGEeS2WoXr83SnEA" typedElement="_-scPwloGEeS2WoXr83SnEA" elementType="_-scPvloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb51oGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb6FoGEeS2WoXr83SnEA" actual="_-scPvloGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb6VoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-scM5FoGEeS2WoXr83SnEA" typedElement="_-scRR1oGEeS2WoXr83SnEA" elementType="_-scRS1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb6loGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb61oGEeS2WoXr83SnEA" actual="_-scRS1oGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-sSb7FoGEeS2WoXr83SnEA" name="Bag" unspecializedElement="_-scO0loGEeS2WoXr83SnEA"
+ superClass="_-scM51oGEeS2WoXr83SnEA" typedElement="_-scRTloGEeS2WoXr83SnEA" elementType="_-scRUVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb7VoGEeS2WoXr83SnEA" signature="_-scO01oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb7loGEeS2WoXr83SnEA" actual="_-scRUVoGEeS2WoXr83SnEA" formal="_-scO1FoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb71oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scOFVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb8FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb8VoGEeS2WoXr83SnEA" actual="_-scOFVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb8loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scOaVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb81oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb9FoGEeS2WoXr83SnEA" actual="_-scOaVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb9VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-sSby1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb9loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb91oGEeS2WoXr83SnEA" actual="_-sSby1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb-FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO_loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb-VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb-loGEeS2WoXr83SnEA" actual="_-scO_loGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb-1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb_FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSb_VoGEeS2WoXr83SnEA" actual="_-scPBFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSb_loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO5VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSb_1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sScAFoGEeS2WoXr83SnEA" actual="_-scO5VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScAVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO71oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sScAloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sScA1oGEeS2WoXr83SnEA" actual="_-scO71oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScBFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scO9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sScBVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sScBloGEeS2WoXr83SnEA" actual="_-scO9FoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScB1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scO61oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sScCFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sScCVoGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sScCloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPfFoGEeS2WoXr83SnEA" elementType="_-scPgFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sScC1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sScDFoGEeS2WoXr83SnEA" actual="_-scPgFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMkFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPg1oGEeS2WoXr83SnEA" elementType="_-scPh1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMkVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMkloGEeS2WoXr83SnEA" actual="_-scPh1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMk1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPOFoGEeS2WoXr83SnEA" elementType="_-scPN1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMlFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMlVoGEeS2WoXr83SnEA" actual="_-scPN1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMlloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPP1oGEeS2WoXr83SnEA" elementType="_-scPQ1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMl1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMmFoGEeS2WoXr83SnEA" actual="_-scPQ1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMmVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPTFoGEeS2WoXr83SnEA" elementType="_-scPS1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMmloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMm1oGEeS2WoXr83SnEA" actual="_-scPS1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMnFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPZloGEeS2WoXr83SnEA" elementType="_-scPZVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMnVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMnloGEeS2WoXr83SnEA" actual="_-scPZVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMn1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPZ1oGEeS2WoXr83SnEA" elementType="_-scPaloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMoFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMoVoGEeS2WoXr83SnEA" actual="_-scPaloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMoloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPbFoGEeS2WoXr83SnEA" elementType="_-scPb1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMo1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMpFoGEeS2WoXr83SnEA" actual="_-scPb1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMpVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMploGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMp1oGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMqFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPFFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMqVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMqloGEeS2WoXr83SnEA" actual="_-scPFFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMq1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMrFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMrVoGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMrloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPtVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMr1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMsFoGEeS2WoXr83SnEA" actual="_-scPtVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMsVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scPvloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMsloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMs1oGEeS2WoXr83SnEA" actual="_-scPvloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMtFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scO4FoGEeS2WoXr83SnEA _-scPPloGEeS2WoXr83SnEA _-scQiVoGEeS2WoXr83SnEA _-scQ3FoGEeS2WoXr83SnEA _-scRLVoGEeS2WoXr83SnEA"
+ elementType="_-scPxVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMtVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMtloGEeS2WoXr83SnEA" actual="_-scPxVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMt1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMuFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMuVoGEeS2WoXr83SnEA" actual="_-scQBFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMuloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQPVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMu1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMvFoGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMvVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQaFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMvloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMv1oGEeS2WoXr83SnEA" actual="_-scQaFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMwFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQs1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMwVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMwloGEeS2WoXr83SnEA" actual="_-scQs1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMw1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMxFoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMxVoGEeS2WoXr83SnEA" actual="_-scQuVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMxloGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMx1oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMyFoGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMyVoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMyloGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMy1oGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMzFoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scMzVoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scMzloGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scMz1oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQdloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM0FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM0VoGEeS2WoXr83SnEA" actual="_-scQdloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM0loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRB1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM01oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM1FoGEeS2WoXr83SnEA" actual="_-scRB1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM1VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRDVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM1loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM11oGEeS2WoXr83SnEA" actual="_-scRDVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM2FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQ4VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM2VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM2loGEeS2WoXr83SnEA" actual="_-scQ4VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM21oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQ9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM3FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM3VoGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM3loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQ-VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM31oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM4FoGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM4VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM4loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM41oGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM5FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRS1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM5VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM5loGEeS2WoXr83SnEA" actual="_-scRS1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM51oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRUVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM6FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM6VoGEeS2WoXr83SnEA" actual="_-scRUVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM6loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRMloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM61oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM7FoGEeS2WoXr83SnEA" actual="_-scRMloGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM7VoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM7loGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM71oGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM8FoGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" elementType="_-scRQVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM8VoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM8loGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM81oGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scROFoGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM9FoGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM9VoGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scM9loGEeS2WoXr83SnEA" name="Collection" unspecializedElement="_-scPFFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scRa1oGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM91oGEeS2WoXr83SnEA" signature="_-scPFVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM-FoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scPFloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scM-VoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scO0VoGEeS2WoXr83SnEA" instanceType="_-scO0FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM-loGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM-1oGEeS2WoXr83SnEA" actual="_-scO0FoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scM_FoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scO8FoGEeS2WoXr83SnEA" instanceType="_-scO71oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scM_VoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scM_loGEeS2WoXr83SnEA" actual="_-scO71oGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scM_1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scO9VoGEeS2WoXr83SnEA" instanceType="_-scO9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNAFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNAVoGEeS2WoXr83SnEA" actual="_-scO9FoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNAloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scPa1oGEeS2WoXr83SnEA" instanceType="_-scPaloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNA1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNBFoGEeS2WoXr83SnEA" actual="_-scPaloGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNBVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scPcFoGEeS2WoXr83SnEA" instanceType="_-scPb1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNBloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNB1oGEeS2WoXr83SnEA" actual="_-scPb1oGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNCFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP1FoGEeS2WoXr83SnEA" instanceType="_-scP01oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNCVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNCloGEeS2WoXr83SnEA" actual="_-scP01oGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNC1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP31oGEeS2WoXr83SnEA" instanceType="_-scP3loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNDFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNDVoGEeS2WoXr83SnEA" actual="_-scP3loGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNDloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP51oGEeS2WoXr83SnEA" instanceType="_-scP5loGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scND1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNEFoGEeS2WoXr83SnEA" actual="_-scP5loGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNEVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQH1oGEeS2WoXr83SnEA" instanceType="_-scQHloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNEloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNE1oGEeS2WoXr83SnEA" actual="_-scQHloGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNFFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQJVoGEeS2WoXr83SnEA" instanceType="_-scQJFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNFVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNFloGEeS2WoXr83SnEA" actual="_-scQJFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNF1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQKloGEeS2WoXr83SnEA" instanceType="_-scQKVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNGFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNGVoGEeS2WoXr83SnEA" actual="_-scQKVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNGloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" instanceType="_-scQDFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNG1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNHFoGEeS2WoXr83SnEA" actual="_-scQDFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNHVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scP71oGEeS2WoXr83SnEA _-scQLFoGEeS2WoXr83SnEA" instanceType="_-scQPVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNHloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNH1oGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNIFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" instanceType="_-scQUloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNIVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNIloGEeS2WoXr83SnEA" actual="_-scQUloGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNI1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQoVoGEeS2WoXr83SnEA" instanceType="_-scQoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNJFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNJVoGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNJloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQploGEeS2WoXr83SnEA" instanceType="_-scQpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNJ1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNKFoGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNKVoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQ9VoGEeS2WoXr83SnEA" instanceType="_-scQ9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNKloGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNK1oGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNLFoGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scQ-loGEeS2WoXr83SnEA" instanceType="_-scQ-VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNLVoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNLloGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNL1oGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scRPVoGEeS2WoXr83SnEA" instanceType="_-scRPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNMFoGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNMVoGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scNMloGEeS2WoXr83SnEA" name="Metaclass" unspecializedElement="_-scPvloGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" typedElement="_-scRQloGEeS2WoXr83SnEA" instanceType="_-scRQVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNM1oGEeS2WoXr83SnEA" signature="_-scPv1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNNFoGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scPwFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNNVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-sSb71oGEeS2WoXr83SnEA" elementType="_-scOFVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNNloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNN1oGEeS2WoXr83SnEA" actual="_-scOFVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNOFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-sSb8loGEeS2WoXr83SnEA" elementType="_-scOaVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNOVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNOloGEeS2WoXr83SnEA" actual="_-scOaVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNO1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-sScB1oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNPFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNPVoGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNPloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMpVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNP1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNQFoGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNQVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMq1oGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNQloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNQ1oGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNRFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMwFoGEeS2WoXr83SnEA" elementType="_-scQs1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNRVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNRloGEeS2WoXr83SnEA" actual="_-scQs1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNR1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMw1oGEeS2WoXr83SnEA" elementType="_-scQuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNSFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNSVoGEeS2WoXr83SnEA" actual="_-scQuVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNSloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMxloGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNS1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNTFoGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNTVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMyVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNTloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNT1oGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNUFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMzFoGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNUVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNUloGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNU1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scMz1oGEeS2WoXr83SnEA" typedElement="_-scQg1oGEeS2WoXr83SnEA _-scQmloGEeS2WoXr83SnEA" elementType="_-scQdloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNVFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNVVoGEeS2WoXr83SnEA" actual="_-scQdloGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNVloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM0loGEeS2WoXr83SnEA" elementType="_-scRB1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNV1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNWFoGEeS2WoXr83SnEA" actual="_-scRB1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNWVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM1VoGEeS2WoXr83SnEA" elementType="_-scRDVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNWloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNW1oGEeS2WoXr83SnEA" actual="_-scRDVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNXFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM2FoGEeS2WoXr83SnEA" elementType="_-scQ4VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNXVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNXloGEeS2WoXr83SnEA" actual="_-scQ4VoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNX1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM21oGEeS2WoXr83SnEA" elementType="_-scQ9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNYFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNYVoGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNYloGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM3loGEeS2WoXr83SnEA" elementType="_-scQ-VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNY1oGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNZFoGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNZVoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM4VoGEeS2WoXr83SnEA" typedElement="_-scQ1loGEeS2WoXr83SnEA _-scQ7loGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNZloGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNZ1oGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNaFoGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM81oGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNaVoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNaloGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNa1oGEeS2WoXr83SnEA" name="OrderedCollection" unspecializedElement="_-scQZVoGEeS2WoXr83SnEA"
+ superClass="_-scM9loGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNbFoGEeS2WoXr83SnEA" signature="_-scQZloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNbVoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scQZ1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNbloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNPloGEeS2WoXr83SnEA _-scNyFoGEeS2WoXr83SnEA" typedElement="_-scPJ1oGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNb1oGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNcFoGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNcVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNQVoGEeS2WoXr83SnEA _-scNy1oGEeS2WoXr83SnEA" typedElement="_-scPt1oGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNcloGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNc1oGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNdFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNSloGEeS2WoXr83SnEA _-scN11oGEeS2WoXr83SnEA" typedElement="_-scQiloGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNdVoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNdloGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNd1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNTVoGEeS2WoXr83SnEA _-scN2loGEeS2WoXr83SnEA" typedElement="_-scQnVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNeFoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNeVoGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNeloGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNUFoGEeS2WoXr83SnEA _-scN3VoGEeS2WoXr83SnEA" typedElement="_-scQoloGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNe1oGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNfFoGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNfVoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNZVoGEeS2WoXr83SnEA _-scN41oGEeS2WoXr83SnEA" typedElement="_-scQ_1oGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNfloGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNf1oGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNgFoGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNaFoGEeS2WoXr83SnEA _-scN71oGEeS2WoXr83SnEA" typedElement="_-scRXFoGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNgVoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNgloGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scNg1oGEeS2WoXr83SnEA" name="OrderedSet" unspecializedElement="_-scQc1oGEeS2WoXr83SnEA"
+ superClass="_-scNa1oGEeS2WoXr83SnEA _-scN8loGEeS2WoXr83SnEA" typedElement="_-scRcloGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNhFoGEeS2WoXr83SnEA" signature="_-scQdFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNhVoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scQdVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNhloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNNVoGEeS2WoXr83SnEA" elementType="_-scOFVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNh1oGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNiFoGEeS2WoXr83SnEA" actual="_-scOFVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNiVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNOFoGEeS2WoXr83SnEA" typedElement="_-scOgFoGEeS2WoXr83SnEA _-scOwFoGEeS2WoXr83SnEA _-scOwloGEeS2WoXr83SnEA _-scOxVoGEeS2WoXr83SnEA"
+ elementType="_-scOaVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNiloGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNi1oGEeS2WoXr83SnEA" actual="_-scOaVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNjFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNO1oGEeS2WoXr83SnEA" typedElement="_-scPD1oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNjVoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNjloGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNj1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNPloGEeS2WoXr83SnEA" typedElement="_-scPKVoGEeS2WoXr83SnEA _-scPsVoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNkFoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNkVoGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNkloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNRFoGEeS2WoXr83SnEA" typedElement="_-scQr1oGEeS2WoXr83SnEA" elementType="_-scQs1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNk1oGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNlFoGEeS2WoXr83SnEA" actual="_-scQs1oGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNlVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNR1oGEeS2WoXr83SnEA" typedElement="_-scQtloGEeS2WoXr83SnEA" elementType="_-scQuVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNlloGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNl1oGEeS2WoXr83SnEA" actual="_-scQuVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNmFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNVloGEeS2WoXr83SnEA" typedElement="_-scRA1oGEeS2WoXr83SnEA" elementType="_-scRB1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNmVoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNmloGEeS2WoXr83SnEA" actual="_-scRB1oGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNm1oGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNWVoGEeS2WoXr83SnEA" typedElement="_-scRCloGEeS2WoXr83SnEA" elementType="_-scRDVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNnFoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNnVoGEeS2WoXr83SnEA" actual="_-scRDVoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNnloGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNXFoGEeS2WoXr83SnEA" typedElement="_-scQ3VoGEeS2WoXr83SnEA" elementType="_-scQ4VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNn1oGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNoFoGEeS2WoXr83SnEA" actual="_-scQ4VoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNoVoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNX1oGEeS2WoXr83SnEA" typedElement="_-scQ8VoGEeS2WoXr83SnEA" elementType="_-scQ9FoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNoloGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNo1oGEeS2WoXr83SnEA" actual="_-scQ9FoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scNpFoGEeS2WoXr83SnEA" name="Sequence" unspecializedElement="_-scQyFoGEeS2WoXr83SnEA"
+ superClass="_-scNYloGEeS2WoXr83SnEA" typedElement="_-scQ9loGEeS2WoXr83SnEA" elementType="_-scQ-VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNpVoGEeS2WoXr83SnEA" signature="_-scQyVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNploGEeS2WoXr83SnEA" actual="_-scQ-VoGEeS2WoXr83SnEA" formal="_-scQyloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNp1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scNwloGEeS2WoXr83SnEA" typedElement="_-scPYVoGEeS2WoXr83SnEA" elementType="_-sSby1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNqFoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNqVoGEeS2WoXr83SnEA" actual="_-sSby1oGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNqloGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scNxVoGEeS2WoXr83SnEA" typedElement="_-scO9loGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNq1oGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNrFoGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNrVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scNyFoGEeS2WoXr83SnEA" typedElement="_-scPK1oGEeS2WoXr83SnEA _-scPVloGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNrloGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNr1oGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNsFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scN0VoGEeS2WoXr83SnEA" typedElement="_-scQCloGEeS2WoXr83SnEA" elementType="_-scQBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNsVoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNsloGEeS2WoXr83SnEA" actual="_-scQBFoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNs1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scN1FoGEeS2WoXr83SnEA" typedElement="_-scN_loGEeS2WoXr83SnEA _-scPuVoGEeS2WoXr83SnEA _-scPzVoGEeS2WoXr83SnEA _-scQBloGEeS2WoXr83SnEA _-scQFFoGEeS2WoXr83SnEA _-scQGloGEeS2WoXr83SnEA _-scQWVoGEeS2WoXr83SnEA"
+ elementType="_-scQPVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNtFoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNtVoGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNtloGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scN5loGEeS2WoXr83SnEA" typedElement="_-scRLloGEeS2WoXr83SnEA" elementType="_-scRMloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNt1oGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNuFoGEeS2WoXr83SnEA" actual="_-scRMloGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNuVoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scN6VoGEeS2WoXr83SnEA" typedElement="_-scROVoGEeS2WoXr83SnEA" elementType="_-scRPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNuloGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNu1oGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNvFoGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scN7FoGEeS2WoXr83SnEA" typedElement="_-scRPloGEeS2WoXr83SnEA" elementType="_-scRQVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNvVoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNvloGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scNv1oGEeS2WoXr83SnEA" name="Set" unspecializedElement="_-scRHFoGEeS2WoXr83SnEA"
+ superClass="_-scN8loGEeS2WoXr83SnEA" typedElement="_-scRaVoGEeS2WoXr83SnEA _-scRbFoGEeS2WoXr83SnEA _-scRb1oGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNwFoGEeS2WoXr83SnEA" signature="_-scRHVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNwVoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scRHloGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNwloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-sSb9VoGEeS2WoXr83SnEA" elementType="_-sSby1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNw1oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNxFoGEeS2WoXr83SnEA" actual="_-sSby1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNxVoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-sScB1oGEeS2WoXr83SnEA" elementType="_-scO1VoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNxloGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNx1oGEeS2WoXr83SnEA" actual="_-scO1VoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNyFoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMpVoGEeS2WoXr83SnEA" typedElement="_-scPWFoGEeS2WoXr83SnEA" elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNyVoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNyloGEeS2WoXr83SnEA" actual="_-scPF1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNy1oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMq1oGEeS2WoXr83SnEA" elementType="_-scPu1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNzFoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scNzVoGEeS2WoXr83SnEA" actual="_-scPu1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scNzloGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMtFoGEeS2WoXr83SnEA" typedElement="_-scQeVoGEeS2WoXr83SnEA _-scRIloGEeS2WoXr83SnEA _-scRaFoGEeS2WoXr83SnEA _-scRbloGEeS2WoXr83SnEA"
+ elementType="_-scPxVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scNz1oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN0FoGEeS2WoXr83SnEA" actual="_-scPxVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN0VoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMt1oGEeS2WoXr83SnEA" elementType="_-scQBFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN0loGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN01oGEeS2WoXr83SnEA" actual="_-scQBFoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN1FoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMuloGEeS2WoXr83SnEA" elementType="_-scQPVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN1VoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN1loGEeS2WoXr83SnEA" actual="_-scQPVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN11oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMxloGEeS2WoXr83SnEA" elementType="_-scQjVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN2FoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN2VoGEeS2WoXr83SnEA" actual="_-scQjVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN2loGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMyVoGEeS2WoXr83SnEA" elementType="_-scQoFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN21oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN3FoGEeS2WoXr83SnEA" actual="_-scQoFoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN3VoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMzFoGEeS2WoXr83SnEA" elementType="_-scQpVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN3loGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN31oGEeS2WoXr83SnEA" actual="_-scQpVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN4FoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scMz1oGEeS2WoXr83SnEA" elementType="_-scQdloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN4VoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN4loGEeS2WoXr83SnEA" actual="_-scQdloGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN41oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scM4VoGEeS2WoXr83SnEA" elementType="_-scQy1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN5FoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN5VoGEeS2WoXr83SnEA" actual="_-scQy1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN5loGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scM6loGEeS2WoXr83SnEA" elementType="_-scRMloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN51oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN6FoGEeS2WoXr83SnEA" actual="_-scRMloGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN6VoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scM7VoGEeS2WoXr83SnEA" elementType="_-scRPFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN6loGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN61oGEeS2WoXr83SnEA" actual="_-scRPFoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN7FoGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scM8FoGEeS2WoXr83SnEA" elementType="_-scRQVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN7VoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN7loGEeS2WoXr83SnEA" actual="_-scRQVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN71oGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scM81oGEeS2WoXr83SnEA" elementType="_-scRH1oGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN8FoGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN8VoGEeS2WoXr83SnEA" actual="_-scRH1oGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scN8loGEeS2WoXr83SnEA" name="UniqueCollection" unspecializedElement="_-scRYloGEeS2WoXr83SnEA"
+ superClass="_-scM9loGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scN81oGEeS2WoXr83SnEA" signature="_-scRY1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scN9FoGEeS2WoXr83SnEA" actual="_-scRZVoGEeS2WoXr83SnEA" formal="_-scRZFoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:type="flatemofqvt:Library" xmi:id="_-scN9VoGEeS2WoXr83SnEA" name="ocl" nsPrefix="ocl" nsURI="http://www.eclipse.org/ocl/3.1.0/OCL.oclstdlib">
+ <ownedComment xmi:id="_-scN9loGEeS2WoXr83SnEA" body="This clause describes the OCL Standard Library of predefined types, their operations, and predefined expression templates in the OCL.
This sub clause contains all standard types defined within OCL, including all the operations defined on those types.
For each operation the signature and a description of the semantics is given.
Within the description, the reserved word ‘result’ is used to refer to the value that results from evaluating the operation.
In several places, post conditions are used to describe properties of the result.
When there is more than one postcondition, all postconditions must be true.
A similar thing is true for multiple preconditions.
If these are used, the operation is only defined if all preconditions evaluate to oclText[true].

heading:1[Introduction]

The structure, syntax, and semantics of the OCL is defined in Clauses 8 (“Abstract Syntax”), 9 (“Concrete Syntax”),
and 10 (“Semantics Described using UML”).
This sub clause adds another part to the OCL definition: a library of predefined types and operations.
Any implementation of OCL must include this library package. This approach has also been taken by e.g., the Java definition,
where the language definition and the standard libraries are both mandatory parts of the complete language definition.

The OCL standard library defines a number of types.
It includes several primitive types: UnlimitedNatural, Integer, Real, String, and Boolean.
These are familiar from many other languages. The second part of the standard library consists of the collection types.
They are Bag, Set, Sequence, and Collection where Collection is an abstract type.
Note that all types defined in the OCL standard library are instances of an abstract syntax class.
The OCL standard library exists at the modeling level, also referred to as the M1 level, where the abstract syntax is the metalevel or M2 level.

Next to definitions of types the OCL standard library defines a number of template expressions.
Many operations defined on collections map not on the abstract syntax metaclass FeatureCallExp, but on the IteratorExp.
For each of these a template expression that defines the name and format of the expression is defined in 11.8, Predefined Iterator Expressions.

The Standard Library may be extended with new types, new operations and new iterators.
In particular new operations can be defined for collections.

Certain String operations depend on the prevailing locale to ensure that Strings are collated and characters are case-converted
in an appropriate fashion.
A locale is defined as a concatenation of up to three character sequences separated by underscores,
with the first sequence identifying the language and the second sequence identifying the country.
The third sequence is empty but may encode an implementation-specific variant.
Trailing empty strings and separators may be omitted.

The character sequences for languages are defined by ISO 639.

The character sequences for countries are defined by ISO 3166.

‘fr_CA’ therefore identifies the locale for the French language in the Canada country.

Comparison of strings and consequently the collation order of Collection::sortedBy()
conforms to the Unicode Collation algorithm defined by Unicode Technical Standard#10.

The locale is ‘en_us’ by default but may be configured by a property constraint on OclAny::oclLocale.

The prevailing locale is defined by the prevailing value of oclLocale within the current environment;
it may therefore be changed temporarily by using a Let expression.
let oclLocale : String = ‘fr_CA’ in aString.toUpperCase()

heading:1[Iterators]

This sub clause defines the standard OCL iterator expressions.
In the abstract syntax these are all instances of IteratorExp.
These iterator expressions always have a collection expression as their source,
as is defined in the well-formedness rules in Clause 8 (“Abstract Syntax”).
The defined iterator expressions are shown per source collection type.
The semantics of each iterator expression is defined through a mapping from the iterator to the ‘iterate’ construct.
This means that the semantics of the iterator expressions do not need to be defined separately in the semantics sub clauses.

In all of the following OCL expressions, the lefthand side of the equals sign is the IteratorExp to be defined,
and the righthand side of the equals sign is the equivalent as an IterateExp.
The names source, body, and iterator refer to the role names in the abstract syntax:

source	The source expression of the IteratorExp.

body	The body expression of the IteratorExp.

iterator	The iterator variable of the IteratorExp.

result	The result variable of the IterateExp.

heading:2[Extending the Standard Library with Iterator Expressions]

It is possible to add new iterator expressions in the standard library.
If this is done the semantics of a new iterator should be defined by mapping it to existing constructs,
in the same way the semantics of pre-defined iterators is done (see sub clause 11.9)"/>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scN91oGEeS2WoXr83SnEA" name="Boolean" superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_-scN-FoGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scN-VoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the not same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_-scN-loGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scN-1oGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scN_FoGEeS2WoXr83SnEA" body="Returns oclText[true] if the logical value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_-scN_VoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scN_loGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAllInstancesOperation">
+ <ownedComment xmi:id="_-scN_1oGEeS2WoXr83SnEA" body="Returns oclText[Set{false, true}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOAFoGEeS2WoXr83SnEA" name="and" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isInvalidating="true" isValidating="true" precedence="_-scRfFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOAVoGEeS2WoXr83SnEA" body="oclText[false] if either oclText[self] or oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid] .
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[true]."/>
+ <bodyExpression xmi:id="_-scOAloGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = false then false
+ else self
+ endif endif
+ else if self = false then false
+ else if b.oclIsInvalid() then b
+ else if b = false then false
+ else if self = null then null
+ else if b = null then null
+ else true
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_-scOA1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOBFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isInvalidating="true" isValidating="true" precedence="_-scRf1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOBVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false], or if oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_-scOBloGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = false then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then b
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_-scOB1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOCFoGEeS2WoXr83SnEA" name="not" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanNotOperation"
+ precedence="_-scRd1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOCVoGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[false].
oclText[false] if oclText[self] is oclText[true].
oclText[null] if oclText[self] is oclText[null].
Otherwise oclText[invalid]."/>
+ <bodyExpression xmi:id="_-scOCloGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if self = null then null
+ else self = false
+ endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOC1oGEeS2WoXr83SnEA" name="or" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanOrOperation"
+ isInvalidating="true" isValidating="true" precedence="_-scRfVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scODFoGEeS2WoXr83SnEA" body="oclText[true] if either oclText[self] or oclText[b] is oclText[true].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null] if either oclText[self] or oclText[b] is oclText[null].
Otherwise oclText[false]."/>
+ <bodyExpression xmi:id="_-scODVoGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then
+ if b.oclIsInvalid() then self
+ else if b = true then true
+ else self
+ endif endif
+ else if self = true then true
+ else if b.oclIsInvalid() then b
+ else if b = true then true
+ else if self = null then null
+ else if b = null then null
+ else false
+ endif endif endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_-scODloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOD1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_-scOEFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOEVoGEeS2WoXr83SnEA" name="xor" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanXorOperation"
+ precedence="_-scRfloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOEloGEeS2WoXr83SnEA" body="oclText[true] if oclText[self] is oclText[true] and oclText[b] is oclText[false], or if oclText[self] is oclText[false] and oclText[b] is oclText[true].
oclText[false] if oclText[self] is oclText[true] and oclText[b] is oclText[true], or if oclText[self] is oclText[false] and oclText[b] is oclText[false].
Otherwise oclText[invalid] if either oclText[self] or oclText[b] is oclText[invalid].
Otherwise oclText[null]."/>
+ <bodyExpression xmi:id="_-scOE1oGEeS2WoXr83SnEA" type="_-scN91oGEeS2WoXr83SnEA">
+ <body>if self.oclIsInvalid() then self
+ else if b.oclIsInvalid() then b
+ else if self = null then null
+ else if b = null then null
+ else self <> b
+ endif endif endif endif</body>
+ <language>OCL</language>
+ </bodyExpression>
+ <ownedParameter xmi:id="_-scOFFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scN-FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scN-1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOAFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOAloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOA1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOBloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOB1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOCFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOCloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOC1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scODVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scODloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOEVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OpaqueExpression" href="#_-scOE1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOFFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scORloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOSVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOTFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOT1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOUloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOVVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scObVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOcFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOc1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOdVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOd1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOeloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOiFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOi1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOlFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOoVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOsFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOyFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scO1loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scO2FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPH1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPIloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPMFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPM1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPRFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPR1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPWVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPX1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPiloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPjloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPkloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPlloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPmloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Iteration" href="#_-scPpVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPx1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scPyloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP1VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP2FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP2loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP4FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP4loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP6FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP9VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP-FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP-1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP_loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQDloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQEVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQFloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQF1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQGFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQGVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQIFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQIVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQJloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQK1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQLVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQLloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQNVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQN1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQOVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQSVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQS1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQT1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQVFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQVloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQW1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQXFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQXVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQXloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQX1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQYFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQYVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scQYloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQeloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQfFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQzFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQzloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scRI1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scRJVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRpVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRqVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRsloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRtloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:RelationCallExp" href="UmlToRel.xml#_-scR61oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scR8FoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scOFVoGEeS2WoXr83SnEA" name="Integer" templateParameterSubstitution="_-sSb8VoGEeS2WoXr83SnEA _-scNN1oGEeS2WoXr83SnEA _-scNiFoGEeS2WoXr83SnEA"
+ superClass="_-scON1oGEeS2WoXr83SnEA" typedElement="_-scOFloGEeS2WoXr83SnEA _-scOGVoGEeS2WoXr83SnEA _-scOHFoGEeS2WoXr83SnEA _-scOHloGEeS2WoXr83SnEA _-scOJFoGEeS2WoXr83SnEA _-scOJloGEeS2WoXr83SnEA _-scOKVoGEeS2WoXr83SnEA _-scOK1oGEeS2WoXr83SnEA _-scOLFoGEeS2WoXr83SnEA _-scOL1oGEeS2WoXr83SnEA _-scOMloGEeS2WoXr83SnEA _-scONFoGEeS2WoXr83SnEA _-scOWloGEeS2WoXr83SnEA _-scOXVoGEeS2WoXr83SnEA _-scOZVoGEeS2WoXr83SnEA _-scOf1oGEeS2WoXr83SnEA _-scOgloGEeS2WoXr83SnEA _-scOjloGEeS2WoXr83SnEA _-scOkVoGEeS2WoXr83SnEA _-scOn1oGEeS2WoXr83SnEA _-scOrloGEeS2WoXr83SnEA _-scOr1oGEeS2WoXr83SnEA _-scOsloGEeS2WoXr83SnEA _-scPG1oGEeS2WoXr83SnEA _-scPHVoGEeS2WoXr83SnEA _-scPLVoGEeS2WoXr83SnEA _-scPcVoGEeS2WoXr83SnEA _-scQAVoGEeS2WoXr83SnEA _-scQa1oGEeS2WoXr83SnEA _-scQbloGEeS2WoXr83SnEA _-scQk1oGEeS2WoXr83SnEA _-scQqVoGEeS2WoXr83SnEA _-scQqloGEeS2WoXr83SnEA _-scQ51oGEeS2WoXr83SnEA _-scQ_VoGEeS2WoXr83SnEA _-scQ_loGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_-scOFloGEeS2WoXr83SnEA" name="*" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_-scReFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOF1oGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and i."/>
+ <ownedParameter xmi:id="_-scOGFoGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOGVoGEeS2WoXr83SnEA" name="+" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOGloGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and i."/>
+ <ownedParameter xmi:id="_-scOG1oGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOHFoGEeS2WoXr83SnEA" name="-" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_-scRd1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOHVoGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOHloGEeS2WoXr83SnEA" name="-" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOH1oGEeS2WoXr83SnEA" body="The value of the subtraction of i from oclText[self]."/>
+ <ownedParameter xmi:id="_-scOIFoGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOIVoGEeS2WoXr83SnEA" name="/" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_-scReFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOIloGEeS2WoXr83SnEA" body="The value of oclText[self] divided by i.
Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_-scOI1oGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOJFoGEeS2WoXr83SnEA" name="abs" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_-scOJVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOJloGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_-scOJ1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_-scOKFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOKVoGEeS2WoXr83SnEA" name="div" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivOperation">
+ <ownedComment xmi:id="_-scOKloGEeS2WoXr83SnEA" body="The number of times that i fits completely within oclText[self]."/>
+ <ownedParameter xmi:id="_-scOK1oGEeS2WoXr83SnEA" name="i" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOLFoGEeS2WoXr83SnEA" name="max" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_-scOLVoGEeS2WoXr83SnEA" body="The maximum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_-scOLloGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOL1oGEeS2WoXr83SnEA" name="min" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_-scOMFoGEeS2WoXr83SnEA" body="The minimum of oclText[self] an i."/>
+ <ownedParameter xmi:id="_-scOMVoGEeS2WoXr83SnEA" name="i" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOMloGEeS2WoXr83SnEA" name="mod" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericModOperation">
+ <ownedComment xmi:id="_-scOM1oGEeS2WoXr83SnEA" body="The result is oclText[self] modulo i."/>
+ <ownedParameter xmi:id="_-scONFoGEeS2WoXr83SnEA" name="i" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scONVoGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_-scONloGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scON1oGEeS2WoXr83SnEA" name="Real" superClass="_-scP81oGEeS2WoXr83SnEA _-scQQFoGEeS2WoXr83SnEA"
+ typedElement="_-scOIVoGEeS2WoXr83SnEA _-scOOFoGEeS2WoXr83SnEA _-scOO1oGEeS2WoXr83SnEA _-scOPloGEeS2WoXr83SnEA _-scOQFoGEeS2WoXr83SnEA _-scOQ1oGEeS2WoXr83SnEA _-scOWFoGEeS2WoXr83SnEA _-scOX1oGEeS2WoXr83SnEA _-scOYloGEeS2WoXr83SnEA _-scOuFoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_-scOOFoGEeS2WoXr83SnEA" name="*" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericTimesOperation"
+ precedence="_-scReFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOOVoGEeS2WoXr83SnEA" body="The value of the multiplication of oclText[self] and r."/>
+ <ownedParameter xmi:id="_-scOOloGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOO1oGEeS2WoXr83SnEA" name="+" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericPlusOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOPFoGEeS2WoXr83SnEA" body="The value of the addition of oclText[self] and r."/>
+ <ownedParameter xmi:id="_-scOPVoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOPloGEeS2WoXr83SnEA" name="-" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericNegateOperation"
+ precedence="_-scRd1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOP1oGEeS2WoXr83SnEA" body="The negative value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOQFoGEeS2WoXr83SnEA" name="-" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinusOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOQVoGEeS2WoXr83SnEA" body="The value of the subtraction of r from oclText[self]."/>
+ <ownedParameter xmi:id="_-scOQloGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOQ1oGEeS2WoXr83SnEA" name="/" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericDivideOperation"
+ precedence="_-scReFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scORFoGEeS2WoXr83SnEA" body="The value of oclText[self] divided by r. Evaluates to oclText[invalid] if r is equal to zero."/>
+ <ownedParameter xmi:id="_-scORVoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scORloGEeS2WoXr83SnEA" name="<" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOR1oGEeS2WoXr83SnEA" body="True if oclText[self] is less than r."/>
+ <ownedParameter xmi:id="_-scOSFoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOSVoGEeS2WoXr83SnEA" name="<=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericLessThanEqualOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOSloGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to r."/>
+ <ownedParameter xmi:id="_-scOS1oGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOTFoGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOTVoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the not the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_-scOTloGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOT1oGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOUFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the numeric value of oclText[self] is the same as the numeric value of object2, oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_-scOUVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOUloGEeS2WoXr83SnEA" name=">" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOU1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than r."/>
+ <ownedParameter xmi:id="_-scOVFoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOVVoGEeS2WoXr83SnEA" name=">=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericGreaterThanEqualOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOVloGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to r."/>
+ <ownedParameter xmi:id="_-scOV1oGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOWFoGEeS2WoXr83SnEA" name="abs" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericAbsOperation">
+ <ownedComment xmi:id="_-scOWVoGEeS2WoXr83SnEA" body="The absolute value of oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOWloGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericCompareToOperation">
+ <ownedComment xmi:id="_-scOW1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_-scOXFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOXVoGEeS2WoXr83SnEA" name="floor" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericFloorOperation">
+ <ownedComment xmi:id="_-scOXloGEeS2WoXr83SnEA" body="The largest integer that is less than or equal to oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOX1oGEeS2WoXr83SnEA" name="max" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMaxOperation">
+ <ownedComment xmi:id="_-scOYFoGEeS2WoXr83SnEA" body="The maximum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_-scOYVoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOYloGEeS2WoXr83SnEA" name="min" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericMinOperation">
+ <ownedComment xmi:id="_-scOY1oGEeS2WoXr83SnEA" body="The minimum of oclText[self] and r."/>
+ <ownedParameter xmi:id="_-scOZFoGEeS2WoXr83SnEA" name="r" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOZVoGEeS2WoXr83SnEA" name="round" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.NumericRoundOperation">
+ <ownedComment xmi:id="_-scOZloGEeS2WoXr83SnEA" body="The integer that is closest to oclText[self]. When there are two such integers, the largest one."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOZ1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_-scOaFoGEeS2WoXr83SnEA" body="Converts oclText[self] to a string value."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scOaVoGEeS2WoXr83SnEA" name="String" templateParameterSubstitution="_-sSb9FoGEeS2WoXr83SnEA _-scNOloGEeS2WoXr83SnEA _-scNi1oGEeS2WoXr83SnEA"
+ superClass="_-scP81oGEeS2WoXr83SnEA _-scQQFoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_-scOaloGEeS2WoXr83SnEA" name="+" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOa1oGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_-scObFoGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scObVoGEeS2WoXr83SnEA" name="<" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scObloGEeS2WoXr83SnEA" body="True if oclText[self] is less than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_-scOb1oGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOcFoGEeS2WoXr83SnEA" name="<=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLessThanEqualOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOcVoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_-scOcloGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOc1oGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scOdFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOdVoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scOdloGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOd1oGEeS2WoXr83SnEA" name=">" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOeFoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_-scOeVoGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOeloGEeS2WoXr83SnEA" name=">=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringGreaterThanEqualOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scOe1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to s, using the locale defined by looking up oclLocale in the current environment."/>
+ <ownedParameter xmi:id="_-scOfFoGEeS2WoXr83SnEA" name="s" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOfVoGEeS2WoXr83SnEA" name="at" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scOfloGEeS2WoXr83SnEA" body="Queries the character at position i in oclText[self]."/>
+ <ownedParameter xmi:id="_-scOf1oGEeS2WoXr83SnEA" name="i" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOgFoGEeS2WoXr83SnEA" name="characters" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCharactersOperation">
+ <ownedComment xmi:id="_-scOgVoGEeS2WoXr83SnEA" body="Obtains the characters of oclText[self] as a sequence."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOgloGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringCompareToOperation">
+ <ownedComment xmi:id="_-scOg1oGEeS2WoXr83SnEA" body="The comparison of oclText[self] with oclText[that]. -ve if less than, 0 if equal, +ve if greater than."/>
+ <ownedParameter xmi:id="_-scOhFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOhVoGEeS2WoXr83SnEA" name="concat" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringConcatOperation">
+ <ownedComment xmi:id="_-scOhloGEeS2WoXr83SnEA" body="The concatenation of oclText[self] and s."/>
+ <ownedParameter xmi:id="_-scOh1oGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOiFoGEeS2WoXr83SnEA" name="endsWith" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEndsWithOperation">
+ <ownedComment xmi:id="_-scOiVoGEeS2WoXr83SnEA" body="Returns true if oclText[self] ends with the string s.
Every string ends with the empty string."/>
+ <ownedParameter xmi:id="_-scOiloGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOi1oGEeS2WoXr83SnEA" name="equalsIgnoreCase" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringEqualsIgnoreCaseOperation">
+ <ownedComment xmi:id="_-scOjFoGEeS2WoXr83SnEA" body="Queries whether s and oclText[self] are equivalent under case-insensitive collation."/>
+ <ownedParameter xmi:id="_-scOjVoGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOjloGEeS2WoXr83SnEA" name="indexOf" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringIndexOfOperation">
+ <ownedComment xmi:id="_-scOj1oGEeS2WoXr83SnEA" body="Queries the first index in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index 1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_-scOkFoGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOkVoGEeS2WoXr83SnEA" name="lastIndexOf" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringLastIndexOfOperation">
+ <ownedComment xmi:id="_-scOkloGEeS2WoXr83SnEA" body="Queries the last in oclText[self] at which s is a substring of oclText[self], or zero if s is not a substring of oclText[self].
The empty string is a substring of every string at index oclText[self]-size()+1 (and also at all other indexes)."/>
+ <ownedParameter xmi:id="_-scOk1oGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOlFoGEeS2WoXr83SnEA" name="matches" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringMatchesOperation">
+ <ownedComment xmi:id="_-scOlVoGEeS2WoXr83SnEA" body="Use a regular expression match and return true if self matches regex, false otherwise."/>
+ <ownedParameter xmi:id="_-scOlloGEeS2WoXr83SnEA" name="regex" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOl1oGEeS2WoXr83SnEA" name="replaceAll" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceAllOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scOmFoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all matches of regex by replacement."/>
+ <ownedParameter xmi:id="_-scOmVoGEeS2WoXr83SnEA" name="regex" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scOmloGEeS2WoXr83SnEA" name="replacement" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOm1oGEeS2WoXr83SnEA" name="replaceFirst" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringReplaceFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scOnFoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first match of regex by replacement."/>
+ <ownedParameter xmi:id="_-scOnVoGEeS2WoXr83SnEA" name="regex" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scOnloGEeS2WoXr83SnEA" name="replacement" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOn1oGEeS2WoXr83SnEA" name="size" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSizeOperation">
+ <ownedComment xmi:id="_-scOoFoGEeS2WoXr83SnEA" body="The number of characters in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOoVoGEeS2WoXr83SnEA" name="startsWith" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringStartsWithOperation">
+ <ownedComment xmi:id="_-scOoloGEeS2WoXr83SnEA" body="Returns true if oclText[self] starts with the string s.
Every string starts with the empty string."/>
+ <ownedParameter xmi:id="_-scOo1oGEeS2WoXr83SnEA" name="s" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOpFoGEeS2WoXr83SnEA" name="substituteAll" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteAllOperation">
+ <ownedComment xmi:id="_-scOpVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing all occurrences of oldSubstring by newSubstring."/>
+ <ownedParameter xmi:id="_-scOploGEeS2WoXr83SnEA" name="oldSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scOp1oGEeS2WoXr83SnEA" name="newSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOqFoGEeS2WoXr83SnEA" name="substituteFirst" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstituteFirstOperation">
+ <ownedComment xmi:id="_-scOqVoGEeS2WoXr83SnEA" body="Return a string derived from self by replacing the first occurrence of oldSubstring by newSubstring.
Returns invalid if there is no first occurrence."/>
+ <ownedParameter xmi:id="_-scOqloGEeS2WoXr83SnEA" name="oldSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scOq1oGEeS2WoXr83SnEA" name="newSubstring" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOrFoGEeS2WoXr83SnEA" name="substring" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringSubstringOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scOrVoGEeS2WoXr83SnEA" body="The sub-string of oclText[self] starting at character number lower, up to and including character number upper. Character numbers run from 1 to self.size()."/>
+ <ownedParameter xmi:id="_-scOrloGEeS2WoXr83SnEA" name="lower" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scOr1oGEeS2WoXr83SnEA" name="upper" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOsFoGEeS2WoXr83SnEA" name="toBoolean" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToBooleanOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scOsVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a boolean value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOsloGEeS2WoXr83SnEA" name="toInteger" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToIntegerOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scOs1oGEeS2WoXr83SnEA" body="Converts oclText[self] to an Integer value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOtFoGEeS2WoXr83SnEA" name="toLower" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_-scOtVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toLowerCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOtloGEeS2WoXr83SnEA" name="toLowerCase" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToLowerCaseOperation">
+ <ownedComment xmi:id="_-scOt1oGEeS2WoXr83SnEA" body="Converts oclText[self] to lower case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOuFoGEeS2WoXr83SnEA" name="toReal" type="_-scON1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToRealOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scOuVoGEeS2WoXr83SnEA" body="Converts oclText[self] to a Real value."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOuloGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_-scOu1oGEeS2WoXr83SnEA" body="Returns oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOvFoGEeS2WoXr83SnEA" name="toUpper" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_-scOvVoGEeS2WoXr83SnEA" body="This is a deprecated variant of toUpperCase() preserving compatibility with traditional Eclipse OCL behaviour."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOvloGEeS2WoXr83SnEA" name="toUpperCase" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringToUpperCaseOperation">
+ <ownedComment xmi:id="_-scOv1oGEeS2WoXr83SnEA" body="Converts oclText[self] to upper case, using the locale defined by looking up oclLocale in the current environment.
Otherwise, returns the same string as oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOwFoGEeS2WoXr83SnEA" name="tokenize" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_-scOwVoGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by any of space, line-feed, carriage-return, form-feed and horizontal-tab delimiters.
The delimiters are omitted from the return."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOwloGEeS2WoXr83SnEA" name="tokenize" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_-scOw1oGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. The delimiters are omitted from the return."/>
+ <ownedParameter xmi:id="_-scOxFoGEeS2WoXr83SnEA" name="delimiters" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOxVoGEeS2WoXr83SnEA" name="tokenize" type="_-scNiVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTokenizeOperation">
+ <ownedComment xmi:id="_-scOxloGEeS2WoXr83SnEA" body="Partition oclText[self] into a sequence substrings separated by characters in the delimiters. If returnDelimeters is
true the returned sequence includes the delimiters, otherwise the delimiters are omitted."/>
+ <ownedParameter xmi:id="_-scOx1oGEeS2WoXr83SnEA" name="delimiters" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scOyFoGEeS2WoXr83SnEA" name="returnDelimiters" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scOyVoGEeS2WoXr83SnEA" name="trim" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.string.StringTrimOperation">
+ <ownedComment xmi:id="_-scOyloGEeS2WoXr83SnEA" body="Return oclText[self] with leading and trailing whitespace removed."/>
+ </ownedOperation>
+ <typedElement xmi:type="flatemofqvt:Property" href="RelMM.xml#_-scRg1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="RelMM.xml#_-scRhFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="RelMM.xml#_-scRiloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOD1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scONVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOZ1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOaloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scObFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOfVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOhVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOh1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOiloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOjVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOkFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOk1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOlloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOl1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOmVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOmloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOm1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOnVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOnloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOo1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOpFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOploGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOp1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOqFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOqloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOq1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOrFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOtFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOtloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOuloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOvFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOvloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOxFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scOx1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scOyVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="#_-scP7loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scP8VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQL1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Operation" href="#_-scQY1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Function" href="UmlToRel.xml#_-scRoloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="UmlToRel.xml#_-scRo1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRpFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRploGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRp1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRqFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRqloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRq1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRrFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRrVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRrloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Function" href="UmlToRel.xml#_-scRr1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Parameter" href="UmlToRel.xml#_-scRsFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRsVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRs1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRtFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:IfExp" href="UmlToRel.xml#_-scRtVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRt1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRuFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRuVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRuloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:StringLiteralExp" href="UmlToRel.xml#_-scRu1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRw1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scRyFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scRyVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scRz1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR0FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR1FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR1loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR3VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR31oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR4loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR41oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR5FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR8VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:OperationCallExp" href="UmlToRel.xml#_-scR8loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR81oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="UmlMM.xml#_-sSbk1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="UmlMM.xml#_-sSblFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="UmlMM.xml#_-sSbmFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:PrimitiveType" xmi:id="_-scOy1oGEeS2WoXr83SnEA" name="UnlimitedNatural" superClass="_-scOFVoGEeS2WoXr83SnEA">
+ <ownedOperation xmi:id="_-scOzFoGEeS2WoXr83SnEA" name="oclAsType" type="_-scO0FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.numeric.UnlimitedNaturalOclAsTypeOperation">
+ <ownedComment xmi:id="_-scOzVoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

The standard behavior is redefined for UnlimitedNatural. Numeric values may be converted to
Real or Integer, but the e[unlimited] value may not.
Conversion of e[unlimited] to Real or Integer returns oclText[invalid]."/>
+ <ownedTemplateSignature xmi:id="_-scOzloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scOz1oGEeS2WoXr83SnEA" parameteredElement="_-scO0FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO0FoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scOz1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM-1oGEeS2WoXr83SnEA" typedElement="_-scOzFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scO0VoGEeS2WoXr83SnEA" name="type" type="_-scM-VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:BagType" xmi:id="_-scO0loGEeS2WoXr83SnEA" name="Bag" superClass="_-sScB1oGEeS2WoXr83SnEA" typedElement="_-scO21oGEeS2WoXr83SnEA _-scO3loGEeS2WoXr83SnEA _-scO5loGEeS2WoXr83SnEA _-scO6VoGEeS2WoXr83SnEA _-scPB1oGEeS2WoXr83SnEA _-scPC1oGEeS2WoXr83SnEA"
+ elementType="_-scO1VoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scO01oGEeS2WoXr83SnEA" templateBinding="_-sSbz1oGEeS2WoXr83SnEA _-sSb0loGEeS2WoXr83SnEA _-sSb1VoGEeS2WoXr83SnEA _-sSb2FoGEeS2WoXr83SnEA _-sSb21oGEeS2WoXr83SnEA _-sSb3loGEeS2WoXr83SnEA _-sSb4VoGEeS2WoXr83SnEA _-sSb5FoGEeS2WoXr83SnEA _-sSb51oGEeS2WoXr83SnEA _-sSb6loGEeS2WoXr83SnEA _-sSb7VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO1FoGEeS2WoXr83SnEA" parameteredElement="_-scO1VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb0FoGEeS2WoXr83SnEA _-sSb01oGEeS2WoXr83SnEA _-sSb1loGEeS2WoXr83SnEA _-sSb2VoGEeS2WoXr83SnEA _-sSb3FoGEeS2WoXr83SnEA _-sSb31oGEeS2WoXr83SnEA _-sSb4loGEeS2WoXr83SnEA _-sSb5VoGEeS2WoXr83SnEA _-sSb6FoGEeS2WoXr83SnEA _-sSb61oGEeS2WoXr83SnEA _-sSb7loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO1VoGEeS2WoXr83SnEA" name="T" templateParameter="_-scO1FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sScCVoGEeS2WoXr83SnEA _-scNPVoGEeS2WoXr83SnEA _-scNjloGEeS2WoXr83SnEA _-scNrFoGEeS2WoXr83SnEA _-scNx1oGEeS2WoXr83SnEA"
+ typedElement="_-scO6FoGEeS2WoXr83SnEA _-scO-VoGEeS2WoXr83SnEA _-scPAFoGEeS2WoXr83SnEA _-scPBloGEeS2WoXr83SnEA _-scPCloGEeS2WoXr83SnEA _-scPDloGEeS2WoXr83SnEA _-scPEloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_-scO1loGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scO11oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO2FoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scO2VoGEeS2WoXr83SnEA" body="True if oclText[self] and bag contain the same elements, the same number of times."/>
+ <ownedParameter xmi:id="_-scO2loGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO21oGEeS2WoXr83SnEA" name="excluding" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_-scO3FoGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of object."/>
+ <ownedParameter xmi:id="_-scO3VoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO3loGEeS2WoXr83SnEA" name="excludingAll" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_-scO31oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_-scO4FoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO4VoGEeS2WoXr83SnEA" name="flatten" type="_-sSb1FoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_-scO4loGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same bag as oclText[self].
If the element type is a collection type, the result is the bag containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_-scO41oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO5FoGEeS2WoXr83SnEA" parameteredElement="_-scO5VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO5VoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scO5FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb1loGEeS2WoXr83SnEA _-sScAFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO5loGEeS2WoXr83SnEA" name="including" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_-scO51oGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_-scO6FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO6VoGEeS2WoXr83SnEA" name="includingAll" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_-scO6loGEeS2WoXr83SnEA" body="The bag containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_-scO61oGEeS2WoXr83SnEA" name="objects" type="_-sScB1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO7FoGEeS2WoXr83SnEA" name="selectByKind" type="_-sSb11oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_-scO7VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO7loGEeS2WoXr83SnEA" parameteredElement="_-scO71oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO71oGEeS2WoXr83SnEA" name="TT" templateParameter="_-scO7loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb2VoGEeS2WoXr83SnEA _-sScA1oGEeS2WoXr83SnEA _-scM_loGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scO8FoGEeS2WoXr83SnEA" name="type" type="_-scM_FoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scO8VoGEeS2WoXr83SnEA" name="selectByType" type="_-sSb2loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_-scO8loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO81oGEeS2WoXr83SnEA" parameteredElement="_-scO9FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO9FoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scO81oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb3FoGEeS2WoXr83SnEA _-sScBloGEeS2WoXr83SnEA _-scNAVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scO9VoGEeS2WoXr83SnEA" name="type" type="_-scM_1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scO9loGEeS2WoXr83SnEA" name="closure" type="_-scNqloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_-scO91oGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_-scO-FoGEeS2WoXr83SnEA" name="lambda" type="_-sSbtVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scO-VoGEeS2WoXr83SnEA" name="i" type="_-scO1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scO-loGEeS2WoXr83SnEA" name="collectNested" type="_-sSbzloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_-scO-1oGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_-scO_FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scO_VoGEeS2WoXr83SnEA" parameteredElement="_-scO_loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scO_loGEeS2WoXr83SnEA" name="V" templateParameter="_-scO_VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb0FoGEeS2WoXr83SnEA _-sSb-loGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scO_1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbsloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPAFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPAVoGEeS2WoXr83SnEA" name="collect" type="_-sSb0VoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_-scPAloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPA1oGEeS2WoXr83SnEA" parameteredElement="_-scPBFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPBFoGEeS2WoXr83SnEA" name="V" templateParameter="_-scPA1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb01oGEeS2WoXr83SnEA _-sSb_VoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPBVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbs1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPBloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPB1oGEeS2WoXr83SnEA" name="reject" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_-scPCFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[false].

oclCode[self->reject(iterator | body) = self->select(iterator | not body)]."/>
+ <ownedParameter xmi:id="_-scPCVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbsVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPCloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPC1oGEeS2WoXr83SnEA" name="select" type="_-scO0loGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_-scPDFoGEeS2WoXr83SnEA" body="The sub-bag of the source bag for which body is oclText[true].

oclCode[self->select(iterator | body) =
self->iterate(iterator; result : Bag(T) = Bag{} |
if body then result->including(iterator)
else result
endif)]"/>
+ <ownedParameter xmi:id="_-scPDVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbsVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPDloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPD1oGEeS2WoXr83SnEA" name="sortedBy" type="_-scNjFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_-scPEFoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_-scPEVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbtFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPEloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scO1VoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scPE1oGEeS2WoXr83SnEA" name="Class" superClass="_-scPxVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scPFFoGEeS2WoXr83SnEA" name="Collection" templateParameterSubstitution="_-sSb4loGEeS2WoXr83SnEA _-scMqloGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scPOVoGEeS2WoXr83SnEA _-scPPFoGEeS2WoXr83SnEA _-scPTVoGEeS2WoXr83SnEA _-scPUFoGEeS2WoXr83SnEA _-scPUloGEeS2WoXr83SnEA _-scPVVoGEeS2WoXr83SnEA _-scPd1oGEeS2WoXr83SnEA _-scPqVoGEeS2WoXr83SnEA _-scPrVoGEeS2WoXr83SnEA"
+ elementType="_-scPF1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scPFVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPFloGEeS2WoXr83SnEA" parameteredElement="_-scPF1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPF1oGEeS2WoXr83SnEA" name="T" templateParameter="_-scPFloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb31oGEeS2WoXr83SnEA _-scMp1oGEeS2WoXr83SnEA _-scNQFoGEeS2WoXr83SnEA _-scNcFoGEeS2WoXr83SnEA _-scNkVoGEeS2WoXr83SnEA _-scNr1oGEeS2WoXr83SnEA _-scNyloGEeS2WoXr83SnEA"
+ typedElement="_-sSbzFoGEeS2WoXr83SnEA _-scPGVoGEeS2WoXr83SnEA _-scPT1oGEeS2WoXr83SnEA _-scPW1oGEeS2WoXr83SnEA _-scPXVoGEeS2WoXr83SnEA _-scPc1oGEeS2WoXr83SnEA _-scPeFoGEeS2WoXr83SnEA _-scPe1oGEeS2WoXr83SnEA _-scPgloGEeS2WoXr83SnEA _-scPiVoGEeS2WoXr83SnEA _-scPjFoGEeS2WoXr83SnEA _-scPjVoGEeS2WoXr83SnEA _-scPkVoGEeS2WoXr83SnEA _-scPlFoGEeS2WoXr83SnEA _-scPlVoGEeS2WoXr83SnEA _-scPmVoGEeS2WoXr83SnEA _-scPnVoGEeS2WoXr83SnEA _-scPpFoGEeS2WoXr83SnEA _-scPqFoGEeS2WoXr83SnEA _-scPrFoGEeS2WoXr83SnEA _-scPsFoGEeS2WoXr83SnEA _-scPtFoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-scPGFoGEeS2WoXr83SnEA" name="Collection" type="_-sSb4FoGEeS2WoXr83SnEA" implicit="true" opposite="_-scPGVoGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ <templateParameterSubstitution href="RelMM.xml#_-scRj1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="RelMM.xml#_-scRkloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sSb8VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sSb9FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sSb91oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sSb-loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sSb_VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sScAFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sScA1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sScBloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sScCVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-sScDFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMkloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMlVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMmFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMm1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMnloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMoVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMpFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMp1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMqloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMrVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMsFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMs1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMtloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMuVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMvFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMv1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMwloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMxVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMyFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMy1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scMzloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM0VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM1FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM11oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM2loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM3VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM4FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM41oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM5loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM6VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM7FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM71oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM8loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM9VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scM-FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="UmlMM.xml#_-sSbn1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="UmlMM.xml#_-sSboloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="RelMM.xml#_-scRjloGEeS2WoXr83SnEA"/>
+ <templateBinding href="RelMM.xml#_-scRkVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sSb8FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sSb81oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sSb9loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sSb-VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sSb_FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sSb_1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sScAloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sScBVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sScCFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-sScC1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMkVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMlFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMl1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMmloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMnVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMoFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMo1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMploGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMqVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMrFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMr1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMsloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMtVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMuFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMu1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMvloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMwVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMxFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMx1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMyloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scMzVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM0FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM01oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM1loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM2VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM3FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM31oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM4loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM5VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM6FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM61oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM7loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM8VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM9FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scM91oGEeS2WoXr83SnEA"/>
+ <templateBinding href="UmlMM.xml#_-sSbnloGEeS2WoXr83SnEA"/>
+ <templateBinding href="UmlMM.xml#_-sSboVoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_-scPGVoGEeS2WoXr83SnEA" isStatic="true" name="elementType" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionElementTypeProperty"
+ opposite="_-scPGFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPGloGEeS2WoXr83SnEA" body="Evaluates to the type of the collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-scPG1oGEeS2WoXr83SnEA" isStatic="true" name="lower" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionLowerProperty">
+ <ownedComment xmi:id="_-scPHFoGEeS2WoXr83SnEA" body="Evaluates to the lower bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-scPHVoGEeS2WoXr83SnEA" isStatic="true" name="upper" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUpperProperty">
+ <ownedComment xmi:id="_-scPHloGEeS2WoXr83SnEA" body="Evaluates to the upper bound on the number of collection elements."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_-scPH1oGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPIFoGEeS2WoXr83SnEA" body="True if c is not equal to oclText[self]."/>
+ <ownedParameter xmi:id="_-scPIVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPIloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPI1oGEeS2WoXr83SnEA" body="True if c is a collection of the same kind as oclText[self] and contains the same elements in the same quantities and in the same order,
in the case of an ordered collection type."/>
+ <ownedParameter xmi:id="_-scPJFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPJVoGEeS2WoXr83SnEA" name="asBag" type="_-sSb3VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsBagOperation">
+ <ownedComment xmi:id="_-scPJloGEeS2WoXr83SnEA" body="The Bag that contains all the elements from oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPJ1oGEeS2WoXr83SnEA" name="asOrderedSet" type="_-scNbloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsOrderedSetOperation">
+ <ownedComment xmi:id="_-scPKFoGEeS2WoXr83SnEA" body="An OrderedSet that contains all the elements from oclText[self], with duplicates removed,
in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPKVoGEeS2WoXr83SnEA" name="asSequence" type="_-scNj1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSequenceOperation">
+ <ownedComment xmi:id="_-scPKloGEeS2WoXr83SnEA" body="A Sequence that contains all the elements from oclText[self], in an order dependent on the particular concrete collection type."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPK1oGEeS2WoXr83SnEA" name="asSet" type="_-scNrVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionAsSetOperation">
+ <ownedComment xmi:id="_-scPLFoGEeS2WoXr83SnEA" body="The Set containing all the elements from oclText[self], with duplicates removed."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPLVoGEeS2WoXr83SnEA" name="count" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionCountOperation">
+ <ownedComment xmi:id="_-scPLloGEeS2WoXr83SnEA" body="The number of times that object occurs in the collection oclText[self]."/>
+ <ownedParameter xmi:id="_-scPL1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPMFoGEeS2WoXr83SnEA" name="excludes" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesOperation">
+ <ownedComment xmi:id="_-scPMVoGEeS2WoXr83SnEA" body="True if object is not an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_-scPMloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPM1oGEeS2WoXr83SnEA" name="excludesAll" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludesAllOperation">
+ <ownedComment xmi:id="_-scPNFoGEeS2WoXr83SnEA" body="Does oclText[self] contain none of the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_-scPNVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPNloGEeS2WoXr83SnEA" parameteredElement="_-scPN1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPN1oGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPNloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMlVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPOFoGEeS2WoXr83SnEA" name="c2" type="_-scMk1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPOVoGEeS2WoXr83SnEA" name="excluding" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_-scPOloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from object."/>
+ <ownedParameter xmi:id="_-scPO1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPPFoGEeS2WoXr83SnEA" name="excludingAll" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_-scPPVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_-scPPloGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPP1oGEeS2WoXr83SnEA" name="flatten" type="_-scMlloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_-scPQFoGEeS2WoXr83SnEA" body="If the element type is not a collection type, this results in the same collection as oclText[self].
If the element type is a collection type, the result is a collection containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_-scPQVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPQloGEeS2WoXr83SnEA" parameteredElement="_-scPQ1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPQ1oGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPQloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMmFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPRFoGEeS2WoXr83SnEA" name="includes" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesOperation">
+ <ownedComment xmi:id="_-scPRVoGEeS2WoXr83SnEA" body="True if object is an element of oclText[self], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_-scPRloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPR1oGEeS2WoXr83SnEA" name="includesAll" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludesAllOperation">
+ <ownedComment xmi:id="_-scPSFoGEeS2WoXr83SnEA" body="Does oclText[self] contain all the elements of c2 ?"/>
+ <ownedTemplateSignature xmi:id="_-scPSVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPSloGEeS2WoXr83SnEA" parameteredElement="_-scPS1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPS1oGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPSloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMm1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPTFoGEeS2WoXr83SnEA" name="c2" type="_-scMmVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPTVoGEeS2WoXr83SnEA" name="including" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_-scPTloGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_-scPT1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPUFoGEeS2WoXr83SnEA" name="includingAll" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_-scPUVoGEeS2WoXr83SnEA" body="The collection containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_-scPUloGEeS2WoXr83SnEA" name="objects" type="_-scPFFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPU1oGEeS2WoXr83SnEA" name="intersection" type="_-sSb3VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_-scPVFoGEeS2WoXr83SnEA" body="The intersection of oclText[self] and bag; the bag of all elements that are in both oclText[self] and c."/>
+ <ownedParameter xmi:id="_-scPVVoGEeS2WoXr83SnEA" name="c" type="_-scPFFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPVloGEeS2WoXr83SnEA" name="intersection" type="_-scNrVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_-scPV1oGEeS2WoXr83SnEA" body="The intersection of oclText[self] and a unique collection; the set of all elements that are in both oclText[self] and u."/>
+ <ownedParameter xmi:id="_-scPWFoGEeS2WoXr83SnEA" name="u" type="_-scNyFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPWVoGEeS2WoXr83SnEA" name="isEmpty" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIsEmptyOperation">
+ <ownedComment xmi:id="_-scPWloGEeS2WoXr83SnEA" body="Is oclText[self] the empty collection?

Note: oclText[null->isEmpty()] returns oclText[true] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPW1oGEeS2WoXr83SnEA" name="max" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMaxOperation">
+ <ownedComment xmi:id="_-scPXFoGEeS2WoXr83SnEA" body="The element with the maximum value of all elements in oclText[self].
Elements must be of a type supporting the max operation.
The max operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPXVoGEeS2WoXr83SnEA" name="min" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionMinOperation">
+ <ownedComment xmi:id="_-scPXloGEeS2WoXr83SnEA" body="The element with the minimum value of all elements in oclText[self].
Elements must be of a type supporting the min operation.
The min operation - supported by the elements - must take one parameter of type T and be both associative and commutative.
UnlimitedNatural, Integer and Real fulfill this condition."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPX1oGEeS2WoXr83SnEA" name="notEmpty" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionNotEmptyOperation">
+ <ownedComment xmi:id="_-scPYFoGEeS2WoXr83SnEA" body="Is oclText[self] not the empty collection?

oclText[null->notEmpty()] returns oclText[false] in virtue of the implicit casting from oclText[null] to oclText[Bag{}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPYVoGEeS2WoXr83SnEA" name="product" type="_-scNp1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionProductOperation">
+ <ownedComment xmi:id="_-scPYloGEeS2WoXr83SnEA" body="The cartesian product operation of oclText[self] and c2."/>
+ <ownedTemplateSignature xmi:id="_-scPY1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPZFoGEeS2WoXr83SnEA" parameteredElement="_-scPZVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPZVoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scPZFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMnloGEeS2WoXr83SnEA" typedElement="_-sSbzVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPZloGEeS2WoXr83SnEA" name="c2" type="_-scMnFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPZ1oGEeS2WoXr83SnEA" name="selectByKind" type="_-scMn1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_-scPaFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPaVoGEeS2WoXr83SnEA" parameteredElement="_-scPaloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPaloGEeS2WoXr83SnEA" name="TT" templateParameter="_-scPaVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMoVoGEeS2WoXr83SnEA _-scNBFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPa1oGEeS2WoXr83SnEA" name="type" type="_-scNAloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPbFoGEeS2WoXr83SnEA" name="selectByType" type="_-scMoloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_-scPbVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPbloGEeS2WoXr83SnEA" parameteredElement="_-scPb1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPb1oGEeS2WoXr83SnEA" name="TT" templateParameter="_-scPbloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMpFoGEeS2WoXr83SnEA _-scNB1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPcFoGEeS2WoXr83SnEA" name="type" type="_-scNBVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPcVoGEeS2WoXr83SnEA" name="size" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSizeOperation">
+ <ownedComment xmi:id="_-scPcloGEeS2WoXr83SnEA" body="The number of elements in the collection oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPc1oGEeS2WoXr83SnEA" name="sum" type="_-scPF1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSumOperation">
+ <ownedComment xmi:id="_-scPdFoGEeS2WoXr83SnEA" body="The addition of all elements in oclText[self].
Elements must be of an oclText[OclSummable] type to provide the zero() and sum() operations.
The e[sum] operation must be both associative: a.sum(b).sum(c) = a.sum(b.sum(c)), and commutative: a.sum(b) = b.sum(a).
UnlimitedNatural, Integer and Real fulfill this condition.

If the e[sum] operation is not both associative and commutative, the e[sum] expression is not well-formed,
which may result in unpredictable results during evaluation.
If an implementation is able to detect a lack of associativity or commutativity,
the implementation may bypass the evaluation and return an oclText[invalid] result."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPdVoGEeS2WoXr83SnEA" name="union" type="_-sSb3VoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_-scPdloGEeS2WoXr83SnEA" body="The bag consisting of all elements in oclText[self] and all elements in c."/>
+ <ownedParameter xmi:id="_-scPd1oGEeS2WoXr83SnEA" name="c" type="_-scPFFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPeFoGEeS2WoXr83SnEA" name="any" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.AnyIteration" isInvalidating="true">
+ <ownedComment xmi:id="_-scPeVoGEeS2WoXr83SnEA" body="Returns any element in the source collection for which body evaluates to oclText[true].
If there is more than one element for which body is oclText[true], one of them is returned.
There must be at least one element fulfilling body, otherwise the result of this IteratorExp is oclText[null]."/>
+ <ownedParameter xmi:id="_-scPeloGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPe1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPfFoGEeS2WoXr83SnEA" name="collectNested" type="_-sScCloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_-scPfVoGEeS2WoXr83SnEA" body="The Collection of elements which results from applying body to every member of the source collection."/>
+ <ownedTemplateSignature xmi:id="_-scPfloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPf1oGEeS2WoXr83SnEA" parameteredElement="_-scPgFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPgFoGEeS2WoXr83SnEA" name="V" templateParameter="_-scPf1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sScDFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPgVoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbt1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPgloGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPg1oGEeS2WoXr83SnEA" name="collect" type="_-scMkFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedComment xmi:id="_-scPhFoGEeS2WoXr83SnEA" body="The Collection of elements that results from applying body to every member of the source set.
The result is flattened. Notice that this is based on collectNested, which can be of different type depending on the type of source.
collectNested is defined individually for each subclass of CollectionType."/>
+ <ownedTemplateSignature xmi:id="_-scPhVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPhloGEeS2WoXr83SnEA" parameteredElement="_-scPh1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPh1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scPhloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMkloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPiFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbuFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPiVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPiloGEeS2WoXr83SnEA" name="exists" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedParameter xmi:id="_-scPi1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPjFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPjVoGEeS2WoXr83SnEA" name="j" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPjloGEeS2WoXr83SnEA" name="exists" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ExistsIteration" isValidating="true">
+ <ownedComment xmi:id="_-scPj1oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to oclText[true] for at least one element in the source collection."/>
+ <ownedParameter xmi:id="_-scPkFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPkVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPkloGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedParameter xmi:id="_-scPk1oGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPlFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPlVoGEeS2WoXr83SnEA" name="j" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPlloGEeS2WoXr83SnEA" name="forAll" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ForAllIteration" isValidating="true">
+ <ownedComment xmi:id="_-scPl1oGEeS2WoXr83SnEA" body="Results in oclText[true] if the body expression evaluates to oclText[true] for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_-scPmFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPmVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPmloGEeS2WoXr83SnEA" name="isUnique" type="_-scN91oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IsUniqueIteration">
+ <ownedComment xmi:id="_-scPm1oGEeS2WoXr83SnEA" body="Results in oclText[true] if body evaluates to a different value for each element in the source collection; otherwise, result is oclText[false]."/>
+ <ownedParameter xmi:id="_-scPnFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbuloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPnVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPnloGEeS2WoXr83SnEA" name="iterate" isRequired="false" type="_-scPoVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.IterateIteration">
+ <ownedTemplateSignature xmi:id="_-scPn1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPoFoGEeS2WoXr83SnEA" parameteredElement="_-scPoVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPoVoGEeS2WoXr83SnEA" name="Tacc" templateParameter="_-scPoFoGEeS2WoXr83SnEA"
+ typedElement="_-scPnloGEeS2WoXr83SnEA _-scPo1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scPoloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbuVoGEeS2WoXr83SnEA"/>
+ <ownedAccumulator xmi:id="_-scPo1oGEeS2WoXr83SnEA" name="acc" isRequired="false" type="_-scPoVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPpFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPpVoGEeS2WoXr83SnEA" name="one" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.OneIteration">
+ <ownedComment xmi:id="_-scPploGEeS2WoXr83SnEA" body="Results in oclText[true] if there is exactly one element in the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_-scPp1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPqFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPqVoGEeS2WoXr83SnEA" name="reject" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_-scPqloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_-scPq1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPrFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPrVoGEeS2WoXr83SnEA" name="select" type="_-scPFFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_-scPrloGEeS2WoXr83SnEA" body="The sub-collection of the source collection for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_-scPr1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbtloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPsFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scPsVoGEeS2WoXr83SnEA" name="sortedBy" type="_-scNj1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_-scPsloGEeS2WoXr83SnEA" body="Results in the Collection containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_-scPs1oGEeS2WoXr83SnEA" name="lambda" type="_-sSbuloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scPtFoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scPF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scPtVoGEeS2WoXr83SnEA" name="Enumeration" templateParameterSubstitution="_-sSb5VoGEeS2WoXr83SnEA _-scMsFoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPtloGEeS2WoXr83SnEA" body="The Enumeration type is the type of an OrderedSet of EnumerationLiteral."/>
+ <ownedAttribute xmi:id="_-scPt1oGEeS2WoXr83SnEA" isStatic="true" name="allLiterals" type="_-scNcVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationOwnedLiteralProperty"
+ opposite="_-scPvVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPuFoGEeS2WoXr83SnEA" body="Evaluates to the literals of the enumeration."/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_-scPuVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.enumeration.EnumerationAllInstancesOperation">
+ <ownedComment xmi:id="_-scPuloGEeS2WoXr83SnEA" body="Return a set of all enumeration values of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scPu1oGEeS2WoXr83SnEA" name="EnumerationLiteral" templateParameterSubstitution="_-scMrVoGEeS2WoXr83SnEA _-scNQ1oGEeS2WoXr83SnEA _-scNc1oGEeS2WoXr83SnEA _-scNzVoGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPvFoGEeS2WoXr83SnEA" body="The standard type EnumerationLiteral represents a named constant value of an Enumeration."/>
+ <ownedAttribute xmi:id="_-scPvVoGEeS2WoXr83SnEA" name="Enumeration" type="_-sSb41oGEeS2WoXr83SnEA" implicit="true" opposite="_-scPt1oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Metaclass" xmi:id="_-scPvloGEeS2WoXr83SnEA" name="Metaclass" templateParameterSubstitution="_-sSb6FoGEeS2WoXr83SnEA _-scMs1oGEeS2WoXr83SnEA"
+ superClass="_-scPE1oGEeS2WoXr83SnEA _-scQTVoGEeS2WoXr83SnEA" instanceType="_-scPwVoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scPv1oGEeS2WoXr83SnEA" templateBinding="_-scM-loGEeS2WoXr83SnEA _-scM_VoGEeS2WoXr83SnEA _-scNAFoGEeS2WoXr83SnEA _-scNA1oGEeS2WoXr83SnEA _-scNBloGEeS2WoXr83SnEA _-scNCVoGEeS2WoXr83SnEA _-scNDFoGEeS2WoXr83SnEA _-scND1oGEeS2WoXr83SnEA _-scNEloGEeS2WoXr83SnEA _-scNFVoGEeS2WoXr83SnEA _-scNGFoGEeS2WoXr83SnEA _-scNG1oGEeS2WoXr83SnEA _-scNHloGEeS2WoXr83SnEA _-scNIVoGEeS2WoXr83SnEA _-scNJFoGEeS2WoXr83SnEA _-scNJ1oGEeS2WoXr83SnEA _-scNKloGEeS2WoXr83SnEA _-scNLVoGEeS2WoXr83SnEA _-scNMFoGEeS2WoXr83SnEA _-scNM1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scPwFoGEeS2WoXr83SnEA" parameteredElement="_-scPwVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM-1oGEeS2WoXr83SnEA _-scM_loGEeS2WoXr83SnEA _-scNAVoGEeS2WoXr83SnEA _-scNBFoGEeS2WoXr83SnEA _-scNB1oGEeS2WoXr83SnEA _-scNCloGEeS2WoXr83SnEA _-scNDVoGEeS2WoXr83SnEA _-scNEFoGEeS2WoXr83SnEA _-scNE1oGEeS2WoXr83SnEA _-scNFloGEeS2WoXr83SnEA _-scNGVoGEeS2WoXr83SnEA _-scNHFoGEeS2WoXr83SnEA _-scNH1oGEeS2WoXr83SnEA _-scNIloGEeS2WoXr83SnEA _-scNJVoGEeS2WoXr83SnEA _-scNKFoGEeS2WoXr83SnEA _-scNK1oGEeS2WoXr83SnEA _-scNLloGEeS2WoXr83SnEA _-scNMVoGEeS2WoXr83SnEA _-scNNFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scPwVoGEeS2WoXr83SnEA" name="T" templateParameter="_-scPwFoGEeS2WoXr83SnEA"
+ typedElement="_-scPw1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-scPwloGEeS2WoXr83SnEA" name="Metaclass" type="_-sSb5loGEeS2WoXr83SnEA" implicit="true" opposite="_-scPw1oGEeS2WoXr83SnEA"/>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_-scPw1oGEeS2WoXr83SnEA" name="instanceType" type="_-scPwVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.MetaclassInstanceTypeProperty"
+ opposite="_-scPwloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPxFoGEeS2WoXr83SnEA" body="Evaluates to the type of instances."/>
+ </ownedAttribute>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:AnyType" xmi:id="_-scPxVoGEeS2WoXr83SnEA" name="OclAny" templateParameterSubstitution="_-scMtloGEeS2WoXr83SnEA _-scN0FoGEeS2WoXr83SnEA"
+ typedElement="_-scO3VoGEeS2WoXr83SnEA _-scPL1oGEeS2WoXr83SnEA _-scPMloGEeS2WoXr83SnEA _-scPO1oGEeS2WoXr83SnEA _-scPRloGEeS2WoXr83SnEA _-scQO1oGEeS2WoXr83SnEA _-scQcFoGEeS2WoXr83SnEA _-scQhloGEeS2WoXr83SnEA _-scQ2VoGEeS2WoXr83SnEA _-scRKloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPxloGEeS2WoXr83SnEA" body="All types in the UML model and the primitive and collection types in the OCL standard library conforms to the type OclAny.
Conceptually, OclAny behaves as a supertype for all the types.
Features of OclAny are available on each object in all OCL expressions.
OclAny is itself an instance of the metatype AnyType.

All classes in a UML model inherit all operations defined on OclAny.
To avoid name conflicts between properties in the model and the properties inherited from OclAny,
all names on the properties of OclAny start with ‘ocl.’
Although theoretically there may still be name conflicts, they can be avoided.
One can also use qualification by OclAny (name of the type) to explicitly refer to the OclAny properties.

Operations of OclAny, where the instance of OclAny is called object."/>
+ <ownedOperation xmi:id="_-scPx1oGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPyFoGEeS2WoXr83SnEA" body="True if oclText[self] is a different object from object2. Infix operator."/>
+ <ownedParameter xmi:id="_-scPyVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPyloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scPy1oGEeS2WoXr83SnEA" body="True if oclText[self] is the same object as object2. Infix operator."/>
+ <ownedParameter xmi:id="_-scPzFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPzVoGEeS2WoXr83SnEA" name="oclAsSet" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation">
+ <ownedComment xmi:id="_-scPzloGEeS2WoXr83SnEA" body="Returns a Set with oclText[self] as the sole content, unless oclText[self] is oclText[null] in which case returns an empty set,"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scPz1oGEeS2WoXr83SnEA" name="oclAsType" isRequired="false" type="_-scP01oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedComment xmi:id="_-scP0FoGEeS2WoXr83SnEA" body="Evaluates to oclText[self], where oclText[self] is of the type identified by T.
The type T may be any classifier defined in the UML model;
if the actual type of oclText[self] at evaluation time does not conform to T,
then the oclAsType operation evaluates to oclText[invalid].

In the case of feature redefinition, casting an object to a supertype of its actual type
does not access the supertype’s definition of the feature;
according to the semantics of redefinition, the redefined feature simply does not exist for the object.
However, when casting to a supertype, any features additionally defined by the subtype are suppressed."/>
+ <ownedTemplateSignature xmi:id="_-scP0VoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scP0loGEeS2WoXr83SnEA" parameteredElement="_-scP01oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scP01oGEeS2WoXr83SnEA" name="TT" templateParameter="_-scP0loGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNCloGEeS2WoXr83SnEA" typedElement="_-scPz1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scP1FoGEeS2WoXr83SnEA" name="type" type="_-scNCFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP1VoGEeS2WoXr83SnEA" name="oclIsInState" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInStateOperation">
+ <ownedComment xmi:id="_-scP1loGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is in the state indentified by statespec."/>
+ <ownedParameter xmi:id="_-scP11oGEeS2WoXr83SnEA" name="statespec" type="_-scQP1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP2FoGEeS2WoXr83SnEA" name="oclIsInvalid" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_-scP2VoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to OclInvalid."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP2loGEeS2WoXr83SnEA" name="oclIsKindOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedComment xmi:id="_-scP21oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the type of oclText[self] conforms to t.
That is, oclText[self] is of type t or a subtype of t."/>
+ <ownedTemplateSignature xmi:id="_-scP3FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scP3VoGEeS2WoXr83SnEA" parameteredElement="_-scP3loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scP3loGEeS2WoXr83SnEA" name="T" templateParameter="_-scP3VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNDVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scP31oGEeS2WoXr83SnEA" name="type" type="_-scNC1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP4FoGEeS2WoXr83SnEA" name="oclIsNew" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_-scP4VoGEeS2WoXr83SnEA" body="Can only be used in a postcondition.
Evaluates to oclText[true] if the oclText[self] is created during performing the operation (for instance, it didn’t exist at precondition time)."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP4loGEeS2WoXr83SnEA" name="oclIsTypeOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedComment xmi:id="_-scP41oGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] is of the type t but not a subtype of t"/>
+ <ownedTemplateSignature xmi:id="_-scP5FoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scP5VoGEeS2WoXr83SnEA" parameteredElement="_-scP5loGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scP5loGEeS2WoXr83SnEA" name="T" templateParameter="_-scP5VoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNEFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scP51oGEeS2WoXr83SnEA" name="type" type="_-scNDloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP6FoGEeS2WoXr83SnEA" name="oclIsUndefined" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true">
+ <ownedComment xmi:id="_-scP6VoGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if the oclText[self] is equal to oclText[invalid] or equal to oclText[null]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP6loGEeS2WoXr83SnEA" name="oclLog" type="_-scQPVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_-scP61oGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP7FoGEeS2WoXr83SnEA" name="oclLog" type="_-scQPVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclLogOperation">
+ <ownedComment xmi:id="_-scP7VoGEeS2WoXr83SnEA" body="Evaluates to the self, with the side effect of generating a log message comprising message followed by self."/>
+ <ownedParameter xmi:id="_-scP7loGEeS2WoXr83SnEA" name="message" type="_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP71oGEeS2WoXr83SnEA" name="oclType" type="_-scNHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation">
+ <ownedComment xmi:id="_-scP8FoGEeS2WoXr83SnEA" body="Evaluates to the type of which oclText[self] is an instance."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP8VoGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_-scP8loGEeS2WoXr83SnEA" body="Returns a string representation of oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scP81oGEeS2WoXr83SnEA" name="OclComparable" superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scP9FoGEeS2WoXr83SnEA" body="The type OclComparable defines the compareTo operation used by the sortedBy iteration. Only types that provide a derived
compareTo implementation may be sorted."/>
+ <ownedOperation xmi:id="_-scP9VoGEeS2WoXr83SnEA" name="<" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scP9loGEeS2WoXr83SnEA" body="True if oclText[self] is less than oclText[that]."/>
+ <ownedParameter xmi:id="_-scP91oGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP-FoGEeS2WoXr83SnEA" name="<=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableLessThanEqualOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scP-VoGEeS2WoXr83SnEA" body="True if oclText[self] is less than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_-scP-loGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP-1oGEeS2WoXr83SnEA" name=">" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scP_FoGEeS2WoXr83SnEA" body="True if oclText[self] is greater than oclText[that]."/>
+ <ownedParameter xmi:id="_-scP_VoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scP_loGEeS2WoXr83SnEA" name=">=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableGreaterThanEqualOperation"
+ precedence="_-scReloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scP_1oGEeS2WoXr83SnEA" body="True if oclText[self] is greater than or equal to oclText[that]."/>
+ <ownedParameter xmi:id="_-scQAFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQAVoGEeS2WoXr83SnEA" name="compareTo" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclComparableCompareToOperation">
+ <ownedComment xmi:id="_-scQAloGEeS2WoXr83SnEA" body="Return -ve, 0, +ve according to whether self is less than, equal to , or greater than that.

The compareTo operation should be commutative."/>
+ <ownedParameter xmi:id="_-scQA1oGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQBFoGEeS2WoXr83SnEA" name="OclElement" templateParameterSubstitution="_-scMuVoGEeS2WoXr83SnEA _-scNsloGEeS2WoXr83SnEA _-scN01oGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scQCFoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQBVoGEeS2WoXr83SnEA" body="The type OclElement is the implicit supertype of any user-defined type that has no explicit supertypes. Operations defined
for OclElement are therefore applicable to all user-defined types."/>
+ <ownedOperation xmi:id="_-scQBloGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierAllInstancesOperation">
+ <ownedComment xmi:id="_-scQB1oGEeS2WoXr83SnEA" body="Return a set of all instances of the type and derived types of self."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQCFoGEeS2WoXr83SnEA" name="oclContainer" isRequired="false" type="_-scQBFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContainerOperation">
+ <ownedComment xmi:id="_-scQCVoGEeS2WoXr83SnEA" body="Returns the object for which self is a composed content or null if there is no such object."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQCloGEeS2WoXr83SnEA" name="oclContents" type="_-scNsFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.ClassifierOclContentsOperation">
+ <ownedComment xmi:id="_-scQC1oGEeS2WoXr83SnEA" body="Returns the composed contents of self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:InvalidType" xmi:id="_-scQDFoGEeS2WoXr83SnEA" name="OclInvalid" templateParameterSubstitution="_-scNHFoGEeS2WoXr83SnEA"
+ superClass="_-scQUloGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQDVoGEeS2WoXr83SnEA" body="The type OclInvalid is a type that conforms to all other types.
It has one single instance, identified as oclText[invalid].
Any property call applied on invalid results in oclText[invalid], except for the operations oclIsUndefined() and oclIsInvalid().
OclInvalid is itself an instance of the metatype InvalidType."/>
+ <ownedOperation xmi:id="_-scQDloGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQD1oGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_-scQEFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQEVoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQEloGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ <ownedParameter xmi:id="_-scQE1oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQFFoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclinvalid.OclInvalidAllInstancesOperation">
+ <ownedComment xmi:id="_-scQFVoGEeS2WoXr83SnEA" body="Returns oclText[invalid]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQFloGEeS2WoXr83SnEA" name="and" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_-scRfFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQF1oGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQGFoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanImpliesOperation"
+ isValidating="true" precedence="_-scRf1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQGVoGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQGloGEeS2WoXr83SnEA" name="oclAsSet" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsSetOperation"/>
+ <ownedOperation xmi:id="_-scQG1oGEeS2WoXr83SnEA" name="oclAsType" type="_-scQHloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclAsTypeOperation">
+ <ownedTemplateSignature xmi:id="_-scQHFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQHVoGEeS2WoXr83SnEA" parameteredElement="_-scQHloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQHloGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQHVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNE1oGEeS2WoXr83SnEA" typedElement="_-scQG1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQH1oGEeS2WoXr83SnEA" name="type" type="_-scNEVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQIFoGEeS2WoXr83SnEA" name="oclIsInvalid" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_-scQIVoGEeS2WoXr83SnEA" name="oclIsKindOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsKindOfOperation">
+ <ownedTemplateSignature xmi:id="_-scQIloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQI1oGEeS2WoXr83SnEA" parameteredElement="_-scQJFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQJFoGEeS2WoXr83SnEA" name="T" templateParameter="_-scQI1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNFloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQJVoGEeS2WoXr83SnEA" name="type" type="_-scNFFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQJloGEeS2WoXr83SnEA" name="oclIsTypeOf" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsTypeOfOperation">
+ <ownedTemplateSignature xmi:id="_-scQJ1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQKFoGEeS2WoXr83SnEA" parameteredElement="_-scQKVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQKVoGEeS2WoXr83SnEA" name="T" templateParameter="_-scQKFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNGVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQKloGEeS2WoXr83SnEA" name="type" type="_-scNF1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQK1oGEeS2WoXr83SnEA" name="oclIsUndefined" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_-scQLFoGEeS2WoXr83SnEA" name="oclType" type="_-scNHVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclTypeOperation"/>
+ <ownedOperation xmi:id="_-scQLVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.logical.BooleanAndOperation"
+ isValidating="true" precedence="_-scRfVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQLloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQL1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_-scQMFoGEeS2WoXr83SnEA" body="Returns 'invalid'."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQMVoGEeS2WoXr83SnEA" name="OclLambda" superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQMloGEeS2WoXr83SnEA" body="The type OclLambda is the implicit supertype of all Lambda types. The operations defined for OclLambda
therefore apply to all lambda expressions."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQM1oGEeS2WoXr83SnEA" name="OclMessage" superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQNFoGEeS2WoXr83SnEA" body="OclMessage
This sub clause contains the definition of the standard type OclMessage.
As defined in this sub clause, each ocl message type is actually a template type with one parameter.
‘T’ denotes the parameter.
A concrete ocl message type is created by substituting an operation or signal for the T.

The predefined type OclMessage is an instance of MessageType.
Every OclMessage is fully determined by either the operation, or signal given as parameter.
Note that there is conceptually an undefined (infinite) number of these types,
as each is determined by a different operation or signal.
These types are unnamed. Every type has as attributes the name of the operation or signal,
and either all formal parameters of the operation, or all attributes of the signal.
OclMessage is itself an instance of the metatype MessageType.

OclMessage has a number of predefined operations, as shown in the OCL Standard Library."/>
+ <ownedOperation xmi:id="_-scQNVoGEeS2WoXr83SnEA" name="hasReturned" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_-scQNloGEeS2WoXr83SnEA" body="True if type of template parameter is an operation call, and the called operation has returned a value.
This implies the fact that the message has been sent. False in all other cases."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQN1oGEeS2WoXr83SnEA" name="isOperationCall" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_-scQOFoGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Operation call."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQOVoGEeS2WoXr83SnEA" name="isSignalSent" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_-scQOloGEeS2WoXr83SnEA" body="Returns oclText[true] if the OclMessage represents the sending of a UML Signal."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQO1oGEeS2WoXr83SnEA" name="result" type="_-scPxVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyUnsupportedOperation">
+ <ownedComment xmi:id="_-scQPFoGEeS2WoXr83SnEA" body="Returns the result of the called operation, if type of template parameter is an operation call,
and the called operation has returned a value. Otherwise the oclText[invalid] value is returned."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SelfType" xmi:id="_-scQPVoGEeS2WoXr83SnEA" name="OclSelf" templateParameterSubstitution="_-scMvFoGEeS2WoXr83SnEA _-scNH1oGEeS2WoXr83SnEA _-scNtVoGEeS2WoXr83SnEA _-scN1loGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scN-loGEeS2WoXr83SnEA _-scN_VoGEeS2WoXr83SnEA _-scOGFoGEeS2WoXr83SnEA _-scOG1oGEeS2WoXr83SnEA _-scOIFoGEeS2WoXr83SnEA _-scOI1oGEeS2WoXr83SnEA _-scOKFoGEeS2WoXr83SnEA _-scOLloGEeS2WoXr83SnEA _-scOMVoGEeS2WoXr83SnEA _-scOOloGEeS2WoXr83SnEA _-scOPVoGEeS2WoXr83SnEA _-scOQloGEeS2WoXr83SnEA _-scORVoGEeS2WoXr83SnEA _-scOSFoGEeS2WoXr83SnEA _-scOS1oGEeS2WoXr83SnEA _-scOTloGEeS2WoXr83SnEA _-scOUVoGEeS2WoXr83SnEA _-scOVFoGEeS2WoXr83SnEA _-scOV1oGEeS2WoXr83SnEA _-scOXFoGEeS2WoXr83SnEA _-scOYVoGEeS2WoXr83SnEA _-scOZFoGEeS2WoXr83SnEA _-scOb1oGEeS2WoXr83SnEA _-scOcloGEeS2WoXr83SnEA _-scOdFoGEeS2WoXr83SnEA _-scOdloGEeS2WoXr83SnEA _-scOeVoGEeS2WoXr83SnEA _-scOfFoGEeS2WoXr83SnEA _-scOhFoGEeS2WoXr83SnEA _-scO11oGEeS2WoXr83SnEA _-scO2loGEeS2WoXr83SnEA _-scPIVoGEeS2WoXr83SnEA _-scPJFoGEeS2WoXr83SnEA _-scPyVoGEeS2WoXr83SnEA _-scPzFoGEeS2WoXr83SnEA _-scP6loGEeS2WoXr83SnEA _-scP7FoGEeS2WoXr83SnEA _-scP91oGEeS2WoXr83SnEA _-scP-loGEeS2WoXr83SnEA _-scP_VoGEeS2WoXr83SnEA _-scQAFoGEeS2WoXr83SnEA _-scQA1oGEeS2WoXr83SnEA _-scQEFoGEeS2WoXr83SnEA _-scQE1oGEeS2WoXr83SnEA _-scQQloGEeS2WoXr83SnEA _-scQRFoGEeS2WoXr83SnEA _-scQRVoGEeS2WoXr83SnEA _-scQSloGEeS2WoXr83SnEA _-scQTFoGEeS2WoXr83SnEA _-scQVVoGEeS2WoXr83SnEA _-scQWFoGEeS2WoXr83SnEA _-scQe1oGEeS2WoXr83SnEA _-scQfVoGEeS2WoXr83SnEA _-scQzVoGEeS2WoXr83SnEA _-scQ0FoGEeS2WoXr83SnEA _-scRJFoGEeS2WoXr83SnEA _-scRJ1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQPloGEeS2WoXr83SnEA" body="The pseudo-type OclSelf denotes the statically determinate type of oclText[self] in Operation
and Iteration signatures. Instances of OclSelf are never created."/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQP1oGEeS2WoXr83SnEA" name="OclState" superClass="_-scPxVoGEeS2WoXr83SnEA" typedElement="_-scP11oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQQFoGEeS2WoXr83SnEA" name="OclSummable" superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQQVoGEeS2WoXr83SnEA" body="The type OclSummable defines the sum and zero operations used by the Collection::sum iteration. Only types that provide derived
sum and zero implementations may be summed."/>
+ <ownedOperation xmi:id="_-scQQloGEeS2WoXr83SnEA" name="sum" type="_-scQPVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQQ1oGEeS2WoXr83SnEA" body="Return the sum of self and that.

The sum operation should be associative."/>
+ <ownedParameter xmi:id="_-scQRFoGEeS2WoXr83SnEA" name="that" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQRVoGEeS2WoXr83SnEA" name="zero" type="_-scQPVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQRloGEeS2WoXr83SnEA" body="Return the 'zero' value of self to initialize a summation.

zero().sum(self) = self."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQR1oGEeS2WoXr83SnEA" name="OclTuple" superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQSFoGEeS2WoXr83SnEA" body="The type OclTuple is the implicit supertype of all Tuple types. The operations defined for OclTuple
therefore apply to all tuples."/>
+ <ownedOperation xmi:id="_-scQSVoGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQSloGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQS1oGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQTFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scQTVoGEeS2WoXr83SnEA" name="OclType" superClass="_-scQBFoGEeS2WoXr83SnEA" typedElement="_-scQUVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQTloGEeS2WoXr83SnEA" body="The type OclType is the implicit supertype of any UML type. Operations defined
for OclType are therefore applicable to all UML types."/>
+ <ownedOperation xmi:id="_-scQT1oGEeS2WoXr83SnEA" name="conformsTo" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.classifier.OclTypeConformsToOperation">
+ <ownedComment xmi:id="_-scQUFoGEeS2WoXr83SnEA" body="Returns true if type2 conforms to self."/>
+ <ownedParameter xmi:id="_-scQUVoGEeS2WoXr83SnEA" name="type2" type="_-scQTVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:VoidType" xmi:id="_-scQUloGEeS2WoXr83SnEA" name="OclVoid" templateParameterSubstitution="_-scNIloGEeS2WoXr83SnEA"
+ superClass="_-scPxVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQU1oGEeS2WoXr83SnEA" body="The type OclVoid is a type that conforms to all other types except OclInvalid.
It has one single instance, identified as oclText[null], that corresponds with the UML LiteralNull value specification.
Any property call applied on oclText[null] results in oclText[invalid], except for the
oclIsUndefined(), oclIsInvalid(), =(OclAny) and <>(OclAny) operations.
However, by virtue of the implicit conversion to a collection literal,
an expression evaluating to oclText[null] can be used as source of collection operations (such as ‘isEmpty’).
If the source is the oclText[null] literal, it is implicitly converted to Bag{}.

OclVoid is itself an instance of the metatype VoidType."/>
+ <ownedOperation xmi:id="_-scQVFoGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQVVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQVloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQV1oGEeS2WoXr83SnEA" body="Redefines the OclAny operation, returning oclText[true] if object is oclText[null], oclText[invalid]
if object is oclText[invalid], oclText[false] otherwise."/>
+ <ownedParameter xmi:id="_-scQWFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQWVoGEeS2WoXr83SnEA" isStatic="true" name="allInstances" type="_-scNs1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAllInstancesOperation">
+ <ownedComment xmi:id="_-scQWloGEeS2WoXr83SnEA" body="Returns oclText[Set{null}]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQW1oGEeS2WoXr83SnEA" name="and" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidAndOperation"
+ precedence="_-scRfFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQXFoGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQXVoGEeS2WoXr83SnEA" name="implies" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidImpliesOperation"
+ precedence="_-scRf1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQXloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQX1oGEeS2WoXr83SnEA" name="oclIsInvalid" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsInvalidOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_-scQYFoGEeS2WoXr83SnEA" name="oclIsUndefined" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyOclIsUndefinedOperation"
+ isValidating="true"/>
+ <ownedOperation xmi:id="_-scQYVoGEeS2WoXr83SnEA" name="or" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclvoid.OclVoidOrOperation"
+ precedence="_-scRfVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQYloGEeS2WoXr83SnEA" name="b" isRequired="false" type="_-scN91oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQY1oGEeS2WoXr83SnEA" name="toString" type="_-scOaVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyToStringOperation">
+ <ownedComment xmi:id="_-scQZFoGEeS2WoXr83SnEA" body="Returns oclText[null]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scQZVoGEeS2WoXr83SnEA" name="OrderedCollection" superClass="_-scMvVoGEeS2WoXr83SnEA"
+ elementType="_-scQaFoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scQZloGEeS2WoXr83SnEA" templateBinding="_-scNNloGEeS2WoXr83SnEA _-scNOVoGEeS2WoXr83SnEA _-scNPFoGEeS2WoXr83SnEA _-scNP1oGEeS2WoXr83SnEA _-scNQloGEeS2WoXr83SnEA _-scNRVoGEeS2WoXr83SnEA _-scNSFoGEeS2WoXr83SnEA _-scNS1oGEeS2WoXr83SnEA _-scNTloGEeS2WoXr83SnEA _-scNUVoGEeS2WoXr83SnEA _-scNVFoGEeS2WoXr83SnEA _-scNV1oGEeS2WoXr83SnEA _-scNWloGEeS2WoXr83SnEA _-scNXVoGEeS2WoXr83SnEA _-scNYFoGEeS2WoXr83SnEA _-scNY1oGEeS2WoXr83SnEA _-scNZloGEeS2WoXr83SnEA _-scNaVoGEeS2WoXr83SnEA _-scNbFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQZ1oGEeS2WoXr83SnEA" parameteredElement="_-scQaFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNN1oGEeS2WoXr83SnEA _-scNOloGEeS2WoXr83SnEA _-scNPVoGEeS2WoXr83SnEA _-scNQFoGEeS2WoXr83SnEA _-scNQ1oGEeS2WoXr83SnEA _-scNRloGEeS2WoXr83SnEA _-scNSVoGEeS2WoXr83SnEA _-scNTFoGEeS2WoXr83SnEA _-scNT1oGEeS2WoXr83SnEA _-scNUloGEeS2WoXr83SnEA _-scNVVoGEeS2WoXr83SnEA _-scNWFoGEeS2WoXr83SnEA _-scNW1oGEeS2WoXr83SnEA _-scNXloGEeS2WoXr83SnEA _-scNYVoGEeS2WoXr83SnEA _-scNZFoGEeS2WoXr83SnEA _-scNZ1oGEeS2WoXr83SnEA _-scNaloGEeS2WoXr83SnEA _-scNbVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQaFoGEeS2WoXr83SnEA" name="T" templateParameter="_-scQZ1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMv1oGEeS2WoXr83SnEA" typedElement="_-scQaVoGEeS2WoXr83SnEA _-scQbFoGEeS2WoXr83SnEA _-scQcVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_-scQaVoGEeS2WoXr83SnEA" name="at" isRequired="false" type="_-scQaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scQaloGEeS2WoXr83SnEA" body="The i-th element of ordered collection."/>
+ <ownedParameter xmi:id="_-scQa1oGEeS2WoXr83SnEA" name="index" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQbFoGEeS2WoXr83SnEA" name="first" isRequired="false" type="_-scQaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionFirstOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scQbVoGEeS2WoXr83SnEA" body="The first element in oclText[self]."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQbloGEeS2WoXr83SnEA" name="indexOf" type="_-scOFVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionIndexOfOperation">
+ <ownedComment xmi:id="_-scQb1oGEeS2WoXr83SnEA" body="The index of object obj in the ordered collection."/>
+ <ownedParameter xmi:id="_-scQcFoGEeS2WoXr83SnEA" name="obj" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQcVoGEeS2WoXr83SnEA" name="last" isRequired="false" type="_-scQaFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionLastOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scQcloGEeS2WoXr83SnEA" body="The last element in oclText[self]."/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:OrderedSetType" xmi:id="_-scQc1oGEeS2WoXr83SnEA" name="OrderedSet" superClass="_-scNU1oGEeS2WoXr83SnEA _-scN4FoGEeS2WoXr83SnEA"
+ typedElement="_-scQd1oGEeS2WoXr83SnEA _-scQfloGEeS2WoXr83SnEA _-scQgVoGEeS2WoXr83SnEA _-scQhFoGEeS2WoXr83SnEA _-scQh1oGEeS2WoXr83SnEA _-scQjloGEeS2WoXr83SnEA _-scQkVoGEeS2WoXr83SnEA _-scQlVoGEeS2WoXr83SnEA _-scQmFoGEeS2WoXr83SnEA _-scQm1oGEeS2WoXr83SnEA _-scQp1oGEeS2WoXr83SnEA _-scQq1oGEeS2WoXr83SnEA _-scQvFoGEeS2WoXr83SnEA _-scQwFoGEeS2WoXr83SnEA _-scQxFoGEeS2WoXr83SnEA"
+ elementType="_-scQdloGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scQdFoGEeS2WoXr83SnEA" templateBinding="_-scNb1oGEeS2WoXr83SnEA _-scNcloGEeS2WoXr83SnEA _-scNdVoGEeS2WoXr83SnEA _-scNeFoGEeS2WoXr83SnEA _-scNe1oGEeS2WoXr83SnEA _-scNfloGEeS2WoXr83SnEA _-scNgVoGEeS2WoXr83SnEA _-scNhFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQdVoGEeS2WoXr83SnEA" parameteredElement="_-scQdloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNcFoGEeS2WoXr83SnEA _-scNc1oGEeS2WoXr83SnEA _-scNdloGEeS2WoXr83SnEA _-scNeVoGEeS2WoXr83SnEA _-scNfFoGEeS2WoXr83SnEA _-scNf1oGEeS2WoXr83SnEA _-scNgloGEeS2WoXr83SnEA _-scNhVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQdloGEeS2WoXr83SnEA" name="T" templateParameter="_-scQdVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM0VoGEeS2WoXr83SnEA _-scNVVoGEeS2WoXr83SnEA _-scN4loGEeS2WoXr83SnEA" typedElement="_-scQgFoGEeS2WoXr83SnEA _-scQkFoGEeS2WoXr83SnEA _-scQlFoGEeS2WoXr83SnEA _-scQl1oGEeS2WoXr83SnEA _-scQrloGEeS2WoXr83SnEA _-scQtVoGEeS2WoXr83SnEA _-scQu1oGEeS2WoXr83SnEA _-scQv1oGEeS2WoXr83SnEA _-scQw1oGEeS2WoXr83SnEA _-scQx1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_-scQd1oGEeS2WoXr83SnEA" name="-" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQeFoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_-scQeVoGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQeloGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQe1oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQfFoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQfVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQfloGEeS2WoXr83SnEA" name="append" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_-scQf1oGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_-scQgFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQgVoGEeS2WoXr83SnEA" name="appendAll" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_-scQgloGEeS2WoXr83SnEA" body="The set of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_-scQg1oGEeS2WoXr83SnEA" name="objects" type="_-scNU1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQhFoGEeS2WoXr83SnEA" name="excluding" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_-scQhVoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_-scQhloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQh1oGEeS2WoXr83SnEA" name="excludingAll" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_-scQiFoGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_-scQiVoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQiloGEeS2WoXr83SnEA" name="flatten" type="_-scNdFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedTemplateSignature xmi:id="_-scQi1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQjFoGEeS2WoXr83SnEA" parameteredElement="_-scQjVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQjVoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scQjFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMyFoGEeS2WoXr83SnEA _-scNTFoGEeS2WoXr83SnEA _-scNdloGEeS2WoXr83SnEA _-scN2VoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQjloGEeS2WoXr83SnEA" name="including" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_-scQj1oGEeS2WoXr83SnEA" body="The ordered set containing all elements of oclText[self] plus object added as the last element if not already present."/>
+ <ownedParameter xmi:id="_-scQkFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQkVoGEeS2WoXr83SnEA" name="insertAt" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scQkloGEeS2WoXr83SnEA" body="The ordered set consisting of oclText[self] with object present at position index."/>
+ <ownedParameter xmi:id="_-scQk1oGEeS2WoXr83SnEA" name="index" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scQlFoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQlVoGEeS2WoXr83SnEA" name="prepend" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_-scQlloGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_-scQl1oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQmFoGEeS2WoXr83SnEA" name="prependAll" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_-scQmVoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_-scQmloGEeS2WoXr83SnEA" name="objects" type="_-scNU1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQm1oGEeS2WoXr83SnEA" name="reverse" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_-scQnFoGEeS2WoXr83SnEA" body="The ordered set of elements with same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQnVoGEeS2WoXr83SnEA" name="selectByKind" type="_-scNd1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_-scQnloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQn1oGEeS2WoXr83SnEA" parameteredElement="_-scQoFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQoFoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQn1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMy1oGEeS2WoXr83SnEA _-scNJVoGEeS2WoXr83SnEA _-scNT1oGEeS2WoXr83SnEA _-scNeVoGEeS2WoXr83SnEA _-scN3FoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQoVoGEeS2WoXr83SnEA" name="type" type="_-scNI1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQoloGEeS2WoXr83SnEA" name="selectByType" type="_-scNeloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_-scQo1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQpFoGEeS2WoXr83SnEA" parameteredElement="_-scQpVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQpVoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQpFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMzloGEeS2WoXr83SnEA _-scNKFoGEeS2WoXr83SnEA _-scNUloGEeS2WoXr83SnEA _-scNfFoGEeS2WoXr83SnEA _-scN31oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQploGEeS2WoXr83SnEA" name="type" type="_-scNJloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQp1oGEeS2WoXr83SnEA" name="subOrderedSet" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedSetSubOrderedSetOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scQqFoGEeS2WoXr83SnEA" body="The sub-set of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_-scQqVoGEeS2WoXr83SnEA" name="lower" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scQqloGEeS2WoXr83SnEA" name="upper" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQq1oGEeS2WoXr83SnEA" name="closure" type="_-scQc1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_-scQrFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_-scQrVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbvVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scQrloGEeS2WoXr83SnEA" name="i" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQr1oGEeS2WoXr83SnEA" name="collectNested" type="_-scNkloGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_-scQsFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_-scQsVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQsloGEeS2WoXr83SnEA" parameteredElement="_-scQs1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQs1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scQsloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMwloGEeS2WoXr83SnEA _-scNRloGEeS2WoXr83SnEA _-scNlFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQtFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbvloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scQtVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQtloGEeS2WoXr83SnEA" name="collect" type="_-scNlVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_-scQt1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQuFoGEeS2WoXr83SnEA" parameteredElement="_-scQuVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQuVoGEeS2WoXr83SnEA" name="V" templateParameter="_-scQuFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scMxVoGEeS2WoXr83SnEA _-scNSVoGEeS2WoXr83SnEA _-scNl1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQuloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbv1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scQu1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQvFoGEeS2WoXr83SnEA" name="reject" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_-scQvVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_-scQvloGEeS2WoXr83SnEA" name="lambda" type="_-sSbu1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scQv1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQwFoGEeS2WoXr83SnEA" name="select" type="_-scQc1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_-scQwVoGEeS2WoXr83SnEA" body="The ordered set of the source ordered set for which body is oclText[true]"/>
+ <ownedParameter xmi:id="_-scQwloGEeS2WoXr83SnEA" name="lambda" type="_-sSbu1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scQw1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQxFoGEeS2WoXr83SnEA" name="sortedBy" type="_-scQc1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_-scQxVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_-scQxloGEeS2WoXr83SnEA" name="lambda" type="_-sSbvFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scQx1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQdloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SequenceType" xmi:id="_-scQyFoGEeS2WoXr83SnEA" name="Sequence" superClass="_-scNZVoGEeS2WoXr83SnEA"
+ typedElement="_-scQ0VoGEeS2WoXr83SnEA _-scQ1FoGEeS2WoXr83SnEA _-scQ11oGEeS2WoXr83SnEA _-scQ2loGEeS2WoXr83SnEA _-scQ4loGEeS2WoXr83SnEA _-scQ5VoGEeS2WoXr83SnEA _-scQ6VoGEeS2WoXr83SnEA _-scQ7FoGEeS2WoXr83SnEA _-scQ71oGEeS2WoXr83SnEA _-scQ-1oGEeS2WoXr83SnEA _-scREFoGEeS2WoXr83SnEA _-scRFFoGEeS2WoXr83SnEA _-scRGFoGEeS2WoXr83SnEA"
+ elementType="_-scQy1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scQyVoGEeS2WoXr83SnEA" templateBinding="_-scNh1oGEeS2WoXr83SnEA _-scNiloGEeS2WoXr83SnEA _-scNjVoGEeS2WoXr83SnEA _-scNkFoGEeS2WoXr83SnEA _-scNk1oGEeS2WoXr83SnEA _-scNlloGEeS2WoXr83SnEA _-scNmVoGEeS2WoXr83SnEA _-scNnFoGEeS2WoXr83SnEA _-scNn1oGEeS2WoXr83SnEA _-scNoloGEeS2WoXr83SnEA _-scNpVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQyloGEeS2WoXr83SnEA" parameteredElement="_-scQy1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scNiFoGEeS2WoXr83SnEA _-scNi1oGEeS2WoXr83SnEA _-scNjloGEeS2WoXr83SnEA _-scNkVoGEeS2WoXr83SnEA _-scNlFoGEeS2WoXr83SnEA _-scNl1oGEeS2WoXr83SnEA _-scNmloGEeS2WoXr83SnEA _-scNnVoGEeS2WoXr83SnEA _-scNoFoGEeS2WoXr83SnEA _-scNo1oGEeS2WoXr83SnEA _-scNploGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQy1oGEeS2WoXr83SnEA" name="T" templateParameter="_-scQyloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM41oGEeS2WoXr83SnEA _-scNZ1oGEeS2WoXr83SnEA _-scNf1oGEeS2WoXr83SnEA _-scN5VoGEeS2WoXr83SnEA"
+ typedElement="_-scQ01oGEeS2WoXr83SnEA _-scQ5FoGEeS2WoXr83SnEA _-scQ6FoGEeS2WoXr83SnEA _-scQ61oGEeS2WoXr83SnEA _-scRAloGEeS2WoXr83SnEA _-scRCVoGEeS2WoXr83SnEA _-scRD1oGEeS2WoXr83SnEA _-scRE1oGEeS2WoXr83SnEA _-scRF1oGEeS2WoXr83SnEA _-scRG1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_-scQzFoGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scQzVoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQzloGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scQz1oGEeS2WoXr83SnEA" body="True if oclText[self] contains the same elements as s in the same order."/>
+ <ownedParameter xmi:id="_-scQ0FoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ0VoGEeS2WoXr83SnEA" name="append" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendOperation">
+ <ownedComment xmi:id="_-scQ0loGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by object."/>
+ <ownedParameter xmi:id="_-scQ01oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ1FoGEeS2WoXr83SnEA" name="appendAll" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionAppendAllOperation">
+ <ownedComment xmi:id="_-scQ1VoGEeS2WoXr83SnEA" body="The sequence of elements, consisting of all elements of oclText[self], followed by objects."/>
+ <ownedParameter xmi:id="_-scQ1loGEeS2WoXr83SnEA" name="objects" type="_-scNZVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ11oGEeS2WoXr83SnEA" name="excluding" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_-scQ2FoGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of object.

The order of the remaining elements is not changed."/>
+ <ownedParameter xmi:id="_-scQ2VoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ2loGEeS2WoXr83SnEA" name="excludingAll" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_-scQ21oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_-scQ3FoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ3VoGEeS2WoXr83SnEA" name="flatten" type="_-scNnloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_-scQ3loGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same sequence as oclText[self].
If the element type is a collection type, the result is the sequence containing all the elements
of all the recursively flattened elements of oclText[self]. The order of the elements is partial."/>
+ <ownedTemplateSignature xmi:id="_-scQ31oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQ4FoGEeS2WoXr83SnEA" parameteredElement="_-scQ4VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQ4VoGEeS2WoXr83SnEA" name="T2" templateParameter="_-scQ4FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM2loGEeS2WoXr83SnEA _-scNXloGEeS2WoXr83SnEA _-scNoFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ4loGEeS2WoXr83SnEA" name="including" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_-scQ41oGEeS2WoXr83SnEA" body="The sequence containing all elements of oclText[self] plus object added as the last element."/>
+ <ownedParameter xmi:id="_-scQ5FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ5VoGEeS2WoXr83SnEA" name="insertAt" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionInsertAtOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scQ5loGEeS2WoXr83SnEA" body="The sequence consisting of oclText[self] with object inserted at position index."/>
+ <ownedParameter xmi:id="_-scQ51oGEeS2WoXr83SnEA" name="index" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scQ6FoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ6VoGEeS2WoXr83SnEA" name="prepend" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependOperation">
+ <ownedComment xmi:id="_-scQ6loGEeS2WoXr83SnEA" body="The sequence consisting of object, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_-scQ61oGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ7FoGEeS2WoXr83SnEA" name="prependAll" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionPrependAllOperation">
+ <ownedComment xmi:id="_-scQ7VoGEeS2WoXr83SnEA" body="The sequence consisting of objects, followed by all elements in oclText[self]."/>
+ <ownedParameter xmi:id="_-scQ7loGEeS2WoXr83SnEA" name="objects" type="_-scNZVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ71oGEeS2WoXr83SnEA" name="reverse" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.OrderedCollectionReverseOperation">
+ <ownedComment xmi:id="_-scQ8FoGEeS2WoXr83SnEA" body="The sequence containing the same elements but with the opposite order."/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ8VoGEeS2WoXr83SnEA" name="selectByKind" type="_-scNoVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_-scQ8loGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQ81oGEeS2WoXr83SnEA" parameteredElement="_-scQ9FoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQ9FoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQ81oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM3VoGEeS2WoXr83SnEA _-scNK1oGEeS2WoXr83SnEA _-scNYVoGEeS2WoXr83SnEA _-scNo1oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQ9VoGEeS2WoXr83SnEA" name="type" type="_-scNKVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ9loGEeS2WoXr83SnEA" name="selectByType" type="_-scNpFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_-scQ91oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scQ-FoGEeS2WoXr83SnEA" parameteredElement="_-scQ-VoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scQ-VoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scQ-FoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM4FoGEeS2WoXr83SnEA _-scNLloGEeS2WoXr83SnEA _-scNZFoGEeS2WoXr83SnEA _-scNploGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scQ-loGEeS2WoXr83SnEA" name="type" type="_-scNLFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scQ-1oGEeS2WoXr83SnEA" name="subSequence" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SequenceSubSequenceOperation"
+ isInvalidating="true">
+ <ownedComment xmi:id="_-scQ_FoGEeS2WoXr83SnEA" body="The sub-sequence of oclText[self] starting at number lower, up to and including element number upper."/>
+ <ownedParameter xmi:id="_-scQ_VoGEeS2WoXr83SnEA" name="lower" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scQ_loGEeS2WoXr83SnEA" name="upper" type="_-scOFVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scQ_1oGEeS2WoXr83SnEA" name="closure" type="_-scNfVoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_-scRAFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_-scRAVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbwloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRAloGEeS2WoXr83SnEA" name="i" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRA1oGEeS2WoXr83SnEA" name="collectNested" type="_-scNmFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_-scRBFoGEeS2WoXr83SnEA" body="The sequence of elements that results from applying body to every member of the source ordered collection."/>
+ <ownedTemplateSignature xmi:id="_-scRBVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRBloGEeS2WoXr83SnEA" parameteredElement="_-scRB1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRB1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scRBloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM1FoGEeS2WoXr83SnEA _-scNWFoGEeS2WoXr83SnEA _-scNmloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scRCFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbw1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRCVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRCloGEeS2WoXr83SnEA" name="collect" type="_-scNm1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_-scRC1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRDFoGEeS2WoXr83SnEA" parameteredElement="_-scRDVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRDVoGEeS2WoXr83SnEA" name="V" templateParameter="_-scRDFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM11oGEeS2WoXr83SnEA _-scNW1oGEeS2WoXr83SnEA _-scNnVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scRDloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbxFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRD1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scREFoGEeS2WoXr83SnEA" name="reject" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_-scREVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_-scREloGEeS2WoXr83SnEA" name="lambda" type="_-sSbwFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRE1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRFFoGEeS2WoXr83SnEA" name="select" type="_-scQyFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_-scRFVoGEeS2WoXr83SnEA" body="The subsequence of the source sequence for which body is oclText[true]."/>
+ <ownedParameter xmi:id="_-scRFloGEeS2WoXr83SnEA" name="lambda" type="_-sSbwFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRF1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRGFoGEeS2WoXr83SnEA" name="sortedBy" type="_-scQyFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_-scRGVoGEeS2WoXr83SnEA" body="Results in the Sequence containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c then a < c)."/>
+ <ownedParameter xmi:id="_-scRGloGEeS2WoXr83SnEA" name="lambda" type="_-sSbwVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRG1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scQy1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scRHFoGEeS2WoXr83SnEA" name="Set" superClass="_-scN71oGEeS2WoXr83SnEA" typedElement="_-scRIFoGEeS2WoXr83SnEA _-scRKFoGEeS2WoXr83SnEA _-scRK1oGEeS2WoXr83SnEA _-scRM1oGEeS2WoXr83SnEA _-scRNloGEeS2WoXr83SnEA _-scRQ1oGEeS2WoXr83SnEA _-scRVFoGEeS2WoXr83SnEA _-scRWFoGEeS2WoXr83SnEA"
+ elementType="_-scRH1oGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scRHVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRHloGEeS2WoXr83SnEA" parameteredElement="_-scRH1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRH1oGEeS2WoXr83SnEA" name="T" templateParameter="_-scRHloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM9VoGEeS2WoXr83SnEA _-scNaloGEeS2WoXr83SnEA _-scNgloGEeS2WoXr83SnEA _-scN8VoGEeS2WoXr83SnEA"
+ typedElement="_-scRNVoGEeS2WoXr83SnEA _-scRRloGEeS2WoXr83SnEA _-scRTVoGEeS2WoXr83SnEA _-scRU1oGEeS2WoXr83SnEA _-scRV1oGEeS2WoXr83SnEA _-scRW1oGEeS2WoXr83SnEA _-scRX1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="RelMM.xml#_-scRlVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="RelMM.xml#_-scRmFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNqVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNrFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNr1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNsloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNtVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNuFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNu1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNvloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNwVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="UmlMM.xml#_-sSbpVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="UmlMM.xml#_-sSbqFoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="RelMM.xml#_-scRlFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="RelMM.xml#_-scRl1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNqFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNq1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNrloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNsVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNtFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNt1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNuloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNvVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNwFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="UmlMM.xml#_-sSbpFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="UmlMM.xml#_-sSbp1oGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_-scRIFoGEeS2WoXr83SnEA" name="-" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scRIVoGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_-scRIloGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRI1oGEeS2WoXr83SnEA" name="<>" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyNotEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:id="_-scRJFoGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRJVoGEeS2WoXr83SnEA" name="=" type="_-scN91oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.oclany.OclAnyEqualOperation"
+ precedence="_-scRe1oGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scRJloGEeS2WoXr83SnEA" body="Evaluates to oclText[true] if oclText[self] and s contain the same elements."/>
+ <ownedParameter xmi:id="_-scRJ1oGEeS2WoXr83SnEA" name="object2" type="_-scQPVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRKFoGEeS2WoXr83SnEA" name="excluding" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingOperation">
+ <ownedComment xmi:id="_-scRKVoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] without object."/>
+ <ownedParameter xmi:id="_-scRKloGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRK1oGEeS2WoXr83SnEA" name="excludingAll" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionExcludingAllOperation">
+ <ownedComment xmi:id="_-scRLFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] apart from all occurrences of all objects."/>
+ <ownedParameter xmi:id="_-scRLVoGEeS2WoXr83SnEA" name="objects" type="_-scMtFoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRLloGEeS2WoXr83SnEA" name="flatten" type="_-scNtloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionFlattenOperation">
+ <ownedComment xmi:id="_-scRL1oGEeS2WoXr83SnEA" body="Redefines the Collection operation. If the element type is not a collection type, this results in the same set as oclText[self].
If the element type is a collection type, the result is the set containing all the elements of all the recursively flattened elements of oclText[self]."/>
+ <ownedTemplateSignature xmi:id="_-scRMFoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRMVoGEeS2WoXr83SnEA" parameteredElement="_-scRMloGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRMloGEeS2WoXr83SnEA" name="T2" templateParameter="_-scRMVoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM7FoGEeS2WoXr83SnEA _-scNuFoGEeS2WoXr83SnEA _-scN6FoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRM1oGEeS2WoXr83SnEA" name="including" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingOperation">
+ <ownedComment xmi:id="_-scRNFoGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] plus object."/>
+ <ownedParameter xmi:id="_-scRNVoGEeS2WoXr83SnEA" name="object" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRNloGEeS2WoXr83SnEA" name="includingAll" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIncludingAllOperation">
+ <ownedComment xmi:id="_-scRN1oGEeS2WoXr83SnEA" body="The set containing all elements of oclText[self] and objects."/>
+ <ownedParameter xmi:id="_-scROFoGEeS2WoXr83SnEA" name="objects" type="_-scM81oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scROVoGEeS2WoXr83SnEA" name="selectByKind" type="_-scNuVoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByKindOperation">
+ <ownedTemplateSignature xmi:id="_-scROloGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRO1oGEeS2WoXr83SnEA" parameteredElement="_-scRPFoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRPFoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scRO1oGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM71oGEeS2WoXr83SnEA _-scNMVoGEeS2WoXr83SnEA _-scNu1oGEeS2WoXr83SnEA _-scN61oGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scRPVoGEeS2WoXr83SnEA" name="type" type="_-scNL1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRPloGEeS2WoXr83SnEA" name="selectByType" type="_-scNvFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionSelectByTypeOperation">
+ <ownedTemplateSignature xmi:id="_-scRP1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRQFoGEeS2WoXr83SnEA" parameteredElement="_-scRQVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRQVoGEeS2WoXr83SnEA" name="TT" templateParameter="_-scRQFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM8loGEeS2WoXr83SnEA _-scNNFoGEeS2WoXr83SnEA _-scNvloGEeS2WoXr83SnEA _-scN7loGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scRQloGEeS2WoXr83SnEA" name="type" type="_-scNMloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRQ1oGEeS2WoXr83SnEA" name="closure" type="_-scRHFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.ClosureIteration">
+ <ownedComment xmi:id="_-scRRFoGEeS2WoXr83SnEA" body="The closure of applying body transitively to every distinct element of the source collection."/>
+ <ownedParameter xmi:id="_-scRRVoGEeS2WoXr83SnEA" name="lambda" type="_-sSbx1oGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRRloGEeS2WoXr83SnEA" name="i" type="_-scRH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRR1oGEeS2WoXr83SnEA" name="collectNested" type="_-sSb6VoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectNestedIteration">
+ <ownedComment xmi:id="_-scRSFoGEeS2WoXr83SnEA" body="The Bag of elements which results from applying body to every member of the source nonordered collection."/>
+ <ownedTemplateSignature xmi:id="_-scRSVoGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRSloGEeS2WoXr83SnEA" parameteredElement="_-scRS1oGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRS1oGEeS2WoXr83SnEA" name="V" templateParameter="_-scRSloGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb61oGEeS2WoXr83SnEA _-scM5loGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scRTFoGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbyFoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRTVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRTloGEeS2WoXr83SnEA" name="collect" type="_-sSb7FoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.CollectIteration">
+ <ownedTemplateSignature xmi:id="_-scRT1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRUFoGEeS2WoXr83SnEA" parameteredElement="_-scRUVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRUVoGEeS2WoXr83SnEA" name="V" templateParameter="_-scRUFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-sSb7loGEeS2WoXr83SnEA _-scM6VoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_-scRUloGEeS2WoXr83SnEA" name="lambda" isRequired="false" type="_-sSbyVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRU1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRVFoGEeS2WoXr83SnEA" name="reject" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.RejectIteration">
+ <ownedComment xmi:id="_-scRVVoGEeS2WoXr83SnEA" body="The subset of the source set for which body is oclText[false]."/>
+ <ownedParameter xmi:id="_-scRVloGEeS2WoXr83SnEA" name="lambda" type="_-sSbxVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRV1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRWFoGEeS2WoXr83SnEA" name="select" type="_-scRHFoGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.iterator.SelectIteration">
+ <ownedComment xmi:id="_-scRWVoGEeS2WoXr83SnEA" body="The subset of set for which expr is oclText[true]."/>
+ <ownedParameter xmi:id="_-scRWloGEeS2WoXr83SnEA" name="lambda" type="_-sSbxVoGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRW1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRXFoGEeS2WoXr83SnEA" name="sortedBy" type="_-scNgFoGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_-scRXVoGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_-scRXloGEeS2WoXr83SnEA" name="lambda" type="_-sSbxloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRX1oGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRH1oGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRYFoGEeS2WoXr83SnEA" name="State" superClass="_-scQP1oGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRYVoGEeS2WoXr83SnEA" name="Type" superClass="_-scQTVoGEeS2WoXr83SnEA"/>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRYloGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-scM9loGEeS2WoXr83SnEA"
+ typedElement="_-scRZloGEeS2WoXr83SnEA _-scRcVoGEeS2WoXr83SnEA" elementType="_-scRZVoGEeS2WoXr83SnEA">
+ <ownedTemplateSignature xmi:id="_-scRY1oGEeS2WoXr83SnEA">
+ <ownedParameter xmi:type="flatemofqvt:TypeTemplateParameter" xmi:id="_-scRZFoGEeS2WoXr83SnEA" parameteredElement="_-scRZVoGEeS2WoXr83SnEA">
+ <ownedParameteredElement xmi:type="flatemofqvt:Class" xmi:id="_-scRZVoGEeS2WoXr83SnEA" name="T" templateParameter="_-scRZFoGEeS2WoXr83SnEA"
+ templateParameterSubstitution="_-scM-FoGEeS2WoXr83SnEA _-scNbVoGEeS2WoXr83SnEA _-scNhVoGEeS2WoXr83SnEA _-scNwVoGEeS2WoXr83SnEA _-scN9FoGEeS2WoXr83SnEA"
+ typedElement="_-scRdVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="RelMM.xml#_-scRm1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="RelMM.xml#_-scRnloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNxFoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNx1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNyloGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scNzVoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN0FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN01oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN1loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN2VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN3FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN31oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN4loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN5VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN6FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN61oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN7loGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN8VoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="#_-scN9FoGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="UmlMM.xml#_-sSbq1oGEeS2WoXr83SnEA"/>
+ <templateParameterSubstitution href="UmlMM.xml#_-sSbrloGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <templateBinding href="RelMM.xml#_-scRmloGEeS2WoXr83SnEA"/>
+ <templateBinding href="RelMM.xml#_-scRnVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNw1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNxloGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNyVoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNzFoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scNz1oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN0loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN1VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN2FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN21oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN3loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN4VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN5FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN51oGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN6loGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN7VoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN8FoGEeS2WoXr83SnEA"/>
+ <templateBinding href="#_-scN81oGEeS2WoXr83SnEA"/>
+ <templateBinding href="UmlMM.xml#_-sSbqloGEeS2WoXr83SnEA"/>
+ <templateBinding href="UmlMM.xml#_-sSbrVoGEeS2WoXr83SnEA"/>
+ </ownedTemplateSignature>
+ <ownedOperation xmi:id="_-scRZloGEeS2WoXr83SnEA" name="-" type="_-scRYloGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetMinusOperation"
+ precedence="_-scReVoGEeS2WoXr83SnEA">
+ <ownedComment xmi:id="_-scRZ1oGEeS2WoXr83SnEA" body="The elements of oclText[self], which are not in s."/>
+ <ownedParameter xmi:id="_-scRaFoGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRaVoGEeS2WoXr83SnEA" name="intersection" type="_-scNv1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionIntersectionOperation">
+ <ownedComment xmi:id="_-scRaloGEeS2WoXr83SnEA" body="The intersection of oclText[self] and c (i.e., the set of all elements that are in both oclText[self] and c)."/>
+ <ownedParameter xmi:id="_-scRa1oGEeS2WoXr83SnEA" name="c" type="_-scM9loGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRbFoGEeS2WoXr83SnEA" name="symmetricDifference" type="_-scNv1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.SetSymmetricDifferenceOperation">
+ <ownedComment xmi:id="_-scRbVoGEeS2WoXr83SnEA" body="The set containing all the elements that are in oclText[self] or s, but not in both."/>
+ <ownedParameter xmi:id="_-scRbloGEeS2WoXr83SnEA" name="s" type="_-scNzloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-scRb1oGEeS2WoXr83SnEA" name="union" type="_-scNv1oGEeS2WoXr83SnEA" implementationClass="org.eclipse.ocl.examples.library.collection.CollectionUnionOperation">
+ <ownedComment xmi:id="_-scRcFoGEeS2WoXr83SnEA" body="The set consisting of all elements in oclText[self] and all elements in s."/>
+ <ownedParameter xmi:id="_-scRcVoGEeS2WoXr83SnEA" name="s" type="_-scRYloGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Iteration" xmi:id="_-scRcloGEeS2WoXr83SnEA" name="sortedBy" type="_-scNg1oGEeS2WoXr83SnEA"
+ implementationClass="org.eclipse.ocl.examples.library.iterator.SortedByIteration">
+ <ownedComment xmi:id="_-scRc1oGEeS2WoXr83SnEA" body="Results in the ordered set containing all elements of the source collection.
The element for which body has the lowest value comes first, and so on.
The type of the body expression must have the < operation defined.
The < operation must return a Boolean value and must be transitive (i.e., if a < b and b < c, then a < c)."/>
+ <ownedParameter xmi:id="_-scRdFoGEeS2WoXr83SnEA" name="lambda" type="_-sSbyloGEeS2WoXr83SnEA"/>
+ <ownedIterator xmi:id="_-scRdVoGEeS2WoXr83SnEA" name="i" isRequired="false" type="_-scRZVoGEeS2WoXr83SnEA"/>
+ </ownedOperation>
+ </ownedType>
+ <ownedPrecedence xmi:id="_-scRdloGEeS2WoXr83SnEA" name="NAVIGATION"/>
+ <ownedPrecedence xmi:id="_-scRd1oGEeS2WoXr83SnEA" name="UNARY" order="1"/>
+ <ownedPrecedence xmi:id="_-scReFoGEeS2WoXr83SnEA" name="MULTIPLICATIVE" order="2"/>
+ <ownedPrecedence xmi:id="_-scReVoGEeS2WoXr83SnEA" name="ADDITIVE" order="3"/>
+ <ownedPrecedence xmi:id="_-scReloGEeS2WoXr83SnEA" name="RELATIONAL" order="4"/>
+ <ownedPrecedence xmi:id="_-scRe1oGEeS2WoXr83SnEA" name="EQUALITY" order="5"/>
+ <ownedPrecedence xmi:id="_-scRfFoGEeS2WoXr83SnEA" name="AND" order="6"/>
+ <ownedPrecedence xmi:id="_-scRfVoGEeS2WoXr83SnEA" name="OR" order="7"/>
+ <ownedPrecedence xmi:id="_-scRfloGEeS2WoXr83SnEA" name="XOR" order="8"/>
+ <ownedPrecedence xmi:id="_-scRf1oGEeS2WoXr83SnEA" name="IMPLIES" order="9"/>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.xml
new file mode 100644
index 0000000..97fc9c5
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_-scRgFoGEeS2WoXr83SnEA" name="RelMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/RelMM.emof">
+ <nestedPackage xmi:id="_-scRgVoGEeS2WoXr83SnEA" name="relMM2" nsURI="relMM2">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRgloGEeS2WoXr83SnEA" name="Column" templateParameterSubstitution="_-scRj1oGEeS2WoXr83SnEA _-scRlVoGEeS2WoXr83SnEA _-scRm1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-scRg1oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR91oGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scR3FoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-scRhFoGEeS2WoXr83SnEA" name="dataType">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scR3loGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-scRhVoGEeS2WoXr83SnEA" name="table" isRequired="false" type="_-scRiFoGEeS2WoXr83SnEA" opposite="_-scRiVoGEeS2WoXr83SnEA">
+ <key href="UmlToRel.xml#_-scR91oGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scR4FoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR21oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR51oGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR91oGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRhloGEeS2WoXr83SnEA" name="Dummy" typedElement="_-scRi1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-scRh1oGEeS2WoXr83SnEA" name="hasTable" type="_-scRlloGEeS2WoXr83SnEA" isComposite="true" opposite="_-scRi1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-scRiFoGEeS2WoXr83SnEA" name="Table" templateParameterSubstitution="_-scRkloGEeS2WoXr83SnEA _-scRmFoGEeS2WoXr83SnEA _-scRnloGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-scRiVoGEeS2WoXr83SnEA" name="column" type="_-scRk1oGEeS2WoXr83SnEA" isComposite="true" opposite="_-scRhVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_-scRiloGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR9loGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scRx1oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-scRi1oGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="_-scRhloGEeS2WoXr83SnEA" implicit="true"
+ opposite="_-scRh1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_-scRhVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scRxloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scRy1oGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR4VoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR6FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR7VoGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR9loGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_-scRjFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRjVoGEeS2WoXr83SnEA" name="Collection" elementType="_-scRgloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scRjloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scRj1oGEeS2WoXr83SnEA" actual="_-scRgloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRkFoGEeS2WoXr83SnEA" name="Collection" elementType="_-scRiFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scRkVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scRkloGEeS2WoXr83SnEA" actual="_-scRiFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scRk1oGEeS2WoXr83SnEA" name="Set" superClass="_-scRmVoGEeS2WoXr83SnEA" typedElement="_-scRiVoGEeS2WoXr83SnEA"
+ elementType="_-scRgloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_-scRlFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scRlVoGEeS2WoXr83SnEA" actual="_-scRgloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-scRlloGEeS2WoXr83SnEA" name="Set" superClass="_-scRnFoGEeS2WoXr83SnEA" typedElement="_-scRh1oGEeS2WoXr83SnEA"
+ elementType="_-scRiFoGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_-scRl1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scRmFoGEeS2WoXr83SnEA" actual="_-scRiFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRmVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-scRjVoGEeS2WoXr83SnEA"
+ elementType="_-scRgloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scRmloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scRm1oGEeS2WoXr83SnEA" actual="_-scRgloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-scRnFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-scRkFoGEeS2WoXr83SnEA"
+ elementType="_-scRiFoGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-scRnVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-scRnloGEeS2WoXr83SnEA" actual="_-scRiFoGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.xml
new file mode 100644
index 0000000..7391a75
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:Root xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:emof="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_-sSbkFoGEeS2WoXr83SnEA" name="UmlMM.emof" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlMM.emof">
+ <nestedPackage xmi:id="_-sSbkVoGEeS2WoXr83SnEA" name="umlMM2" nsURI="umlMM2">
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-sSbkloGEeS2WoXr83SnEA" name="Attribute" templateParameterSubstitution="_-sSbn1oGEeS2WoXr83SnEA _-sSbpVoGEeS2WoXr83SnEA _-sSbq1oGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-sSbk1oGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR9VoGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scR01oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-sSblFoGEeS2WoXr83SnEA" name="type">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scR1VoGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-sSblVoGEeS2WoXr83SnEA" name="class" isRequired="false" type="_-sSblloGEeS2WoXr83SnEA" opposite="_-sSbl1oGEeS2WoXr83SnEA">
+ <key href="UmlToRel.xml#_-scR9VoGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scR11oGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR0loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR5VoGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR9VoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-sSblloGEeS2WoXr83SnEA" name="Class" templateParameterSubstitution="_-sSboloGEeS2WoXr83SnEA _-sSbqFoGEeS2WoXr83SnEA _-sSbrloGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-sSbl1oGEeS2WoXr83SnEA" name="attribute" type="_-sSbo1oGEeS2WoXr83SnEA" isComposite="true" opposite="_-sSblVoGEeS2WoXr83SnEA"/>
+ <ownedAttribute xmi:id="_-sSbmFoGEeS2WoXr83SnEA" name="name">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR9FoGEeS2WoXr83SnEA"/>
+ <propertyItem href="UmlToRel.xml#_-scRwloGEeS2WoXr83SnEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-sSbmVoGEeS2WoXr83SnEA" name="Dummy" isRequired="false" type="_-sSbmloGEeS2WoXr83SnEA" implicit="true"
+ opposite="_-sSbm1oGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scRwVoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scRyloGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:ObjectTemplateExp" href="UmlToRel.xml#_-scR2FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Variable" href="UmlToRel.xml#_-scR5loGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:VariableExp" href="UmlToRel.xml#_-scR7FoGEeS2WoXr83SnEA"/>
+ <typedElement xmi:type="flatemofqvt:Property" href="#_-sSblVoGEeS2WoXr83SnEA"/>
+ <key href="UmlToRel.xml#_-scR9FoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:Class" xmi:id="_-sSbmloGEeS2WoXr83SnEA" name="Dummy" typedElement="_-sSbmVoGEeS2WoXr83SnEA">
+ <ownedAttribute xmi:id="_-sSbm1oGEeS2WoXr83SnEA" name="hasClass" type="_-sSbploGEeS2WoXr83SnEA" isComposite="true" opposite="_-sSbmVoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+ <nestedPackage xmi:id="_-sSbnFoGEeS2WoXr83SnEA" name="$$" nsPrefix="orphanage" nsURI="http://www.eclipse.org/ocl/3.1.0/orphanage">
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSbnVoGEeS2WoXr83SnEA" name="Collection" elementType="_-sSbkloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSbnloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSbn1oGEeS2WoXr83SnEA" actual="_-sSbkloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSboFoGEeS2WoXr83SnEA" name="Collection" elementType="_-sSblloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSboVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSboloGEeS2WoXr83SnEA" actual="_-sSblloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scPFloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scPFVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scPFFoGEeS2WoXr83SnEA"/>
+ <superClass href="OCL.xml#_-scPxVoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-sSbo1oGEeS2WoXr83SnEA" name="Set" superClass="_-sSbqVoGEeS2WoXr83SnEA" typedElement="_-sSbl1oGEeS2WoXr83SnEA"
+ elementType="_-sSbkloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_-sSbpFoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSbpVoGEeS2WoXr83SnEA" actual="_-sSbkloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:SetType" xmi:id="_-sSbploGEeS2WoXr83SnEA" name="Set" superClass="_-sSbrFoGEeS2WoXr83SnEA" typedElement="_-sSbm1oGEeS2WoXr83SnEA"
+ elementType="_-sSblloGEeS2WoXr83SnEA" lower="1">
+ <templateBinding xmi:id="_-sSbp1oGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSbqFoGEeS2WoXr83SnEA" actual="_-sSblloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRHloGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRHVoGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:SetType" href="OCL.xml#_-scRHFoGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSbqVoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-sSbnVoGEeS2WoXr83SnEA"
+ elementType="_-sSbkloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSbqloGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSbq1oGEeS2WoXr83SnEA" actual="_-sSbkloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ <ownedType xmi:type="flatemofqvt:CollectionType" xmi:id="_-sSbrFoGEeS2WoXr83SnEA" name="UniqueCollection" superClass="_-sSboFoGEeS2WoXr83SnEA"
+ elementType="_-sSblloGEeS2WoXr83SnEA">
+ <templateBinding xmi:id="_-sSbrVoGEeS2WoXr83SnEA">
+ <parameterSubstitution xmi:id="_-sSbrloGEeS2WoXr83SnEA" actual="_-sSblloGEeS2WoXr83SnEA">
+ <formal href="OCL.xml#_-scRZFoGEeS2WoXr83SnEA"/>
+ </parameterSubstitution>
+ <signature href="OCL.xml#_-scRY1oGEeS2WoXr83SnEA"/>
+ </templateBinding>
+ <unspecializedElement xmi:type="flatemofqvt:CollectionType" href="OCL.xml#_-scRYloGEeS2WoXr83SnEA"/>
+ </ownedType>
+ </nestedPackage>
+</flatemofqvt:Root>
diff --git a/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.xml b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.xml
new file mode 100644
index 0000000..e621724
--- /dev/null
+++ b/examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.xml
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="ASCII"?>
+<flatemofqvt:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:emof="http://www.eclipse.org/emf/2002/Ecore" xmlns:flatemofqvt="http://www.eclipse.org/qvt/0.9/FlatEmofQVT" xsi:schemaLocation="http://www.eclipse.org/qvt/0.9/FlatEmofQVT ../../../org.eclipse.qvtd.pivot.qvtbase/model-gen/FlatQVTpivot.ecore"
+ xmi:id="_-scRn1oGEeS2WoXr83SnEA" name="UmlToRel.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtrelation.modelmorf/qvtrsrc/UmlToRel/UmlToRel.qvtr">
+ <ownedComment xmi:id="_-scRoFoGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <nestedPackage xmi:type="flatemofqvt:RelationalTransformation" xmi:id="_-scRoVoGEeS2WoXr83SnEA" name="UmlToRel">
+ <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_-scRoloGEeS2WoXr83SnEA" name="UmlToSqlDataType">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scRo1oGEeS2WoXr83SnEA" name="utyp">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRpFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRpVoGEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRploGEeS2WoXr83SnEA" referredVariable="_-scRo1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRp1oGEeS2WoXr83SnEA" stringSymbol="Int">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRqFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRqVoGEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRqloGEeS2WoXr83SnEA" referredVariable="_-scRo1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRq1oGEeS2WoXr83SnEA" stringSymbol="Binary">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRrFoGEeS2WoXr83SnEA" stringSymbol="Varchar">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRrVoGEeS2WoXr83SnEA" stringSymbol="Raw">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRrloGEeS2WoXr83SnEA" stringSymbol="Number">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </queryExpression>
+ </ownedOperation>
+ <ownedOperation xmi:type="flatemofqvt:Function" xmi:id="_-scRr1oGEeS2WoXr83SnEA" name="SqlToUmlDataType">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <ownedParameter xmi:id="_-scRsFoGEeS2WoXr83SnEA" name="styp">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </ownedParameter>
+ <queryExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRsVoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRsloGEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRs1oGEeS2WoXr83SnEA" referredVariable="_-scRsFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRtFoGEeS2WoXr83SnEA" stringSymbol="Number">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:IfExp" xmi:id="_-scRtVoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <condition xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRtloGEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRt1oGEeS2WoXr83SnEA" referredVariable="_-scRsFoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRuFoGEeS2WoXr83SnEA" stringSymbol="Raw">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </argument>
+ <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+ </condition>
+ <elseExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRuVoGEeS2WoXr83SnEA" stringSymbol="String">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRuloGEeS2WoXr83SnEA" stringSymbol="Binary">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </elseExpression>
+ <thenExpression xmi:type="flatemofqvt:StringLiteralExp" xmi:id="_-scRu1oGEeS2WoXr83SnEA" stringSymbol="Int">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </thenExpression>
+ </queryExpression>
+ </ownedOperation>
+ <superClass href="OCL.xml#_-scQBFoGEeS2WoXr83SnEA"/>
+ <modelParameter xmi:id="_-scRvFoGEeS2WoXr83SnEA" name="uml">
+ <usedPackage href="UmlMM.xml#_-sSbkVoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <modelParameter xmi:id="_-scRvVoGEeS2WoXr83SnEA" name="rdbms">
+ <usedPackage href="RelMM.xml#_-scRgVoGEeS2WoXr83SnEA"/>
+ </modelParameter>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_-scRvloGEeS2WoXr83SnEA" name="ClassToTable" isTopLevel="true" relationCallExp="_-scR61oGEeS2WoXr83SnEA">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scRv1oGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvFoGEeS2WoXr83SnEA"
+ rootVariable="_-scRyloGEeS2WoXr83SnEA">
+ <pattern xmi:id="_-scRwFoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scRwVoGEeS2WoXr83SnEA" bindsTo="_-scRyloGEeS2WoXr83SnEA">
+ <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ <part xmi:id="_-scRwloGEeS2WoXr83SnEA">
+ <referredProperty href="UmlMM.xml#_-sSbmFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRw1oGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scRyVoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scRxFoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvVoGEeS2WoXr83SnEA"
+ rootVariable="_-scRy1oGEeS2WoXr83SnEA">
+ <pattern xmi:id="_-scRxVoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scRxloGEeS2WoXr83SnEA" bindsTo="_-scRy1oGEeS2WoXr83SnEA">
+ <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ <part xmi:id="_-scRx1oGEeS2WoXr83SnEA">
+ <referredProperty href="RelMM.xml#_-scRiloGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scRyFoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scRyVoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_-scRyVoGEeS2WoXr83SnEA" name="n" isRequired="false">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scRyloGEeS2WoXr83SnEA" name="c" templateExp="_-scRwVoGEeS2WoXr83SnEA">
+ <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scRy1oGEeS2WoXr83SnEA" name="t" templateExp="_-scRxloGEeS2WoXr83SnEA">
+ <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ </variable>
+ </rule>
+ <rule xmi:type="flatemofqvt:Relation" xmi:id="_-scRzFoGEeS2WoXr83SnEA" name="AttributeToColumn" isTopLevel="true">
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scRzVoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvFoGEeS2WoXr83SnEA"
+ rootVariable="_-scR5VoGEeS2WoXr83SnEA">
+ <defaultAssignment xmi:id="_-scRzloGEeS2WoXr83SnEA" variable="_-scR41oGEeS2WoXr83SnEA">
+ <valueExp xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scRz1oGEeS2WoXr83SnEA" referredOperation="_-scRr1oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR0FoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR5FoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </argument>
+ </valueExp>
+ </defaultAssignment>
+ <pattern xmi:id="_-scR0VoGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR0loGEeS2WoXr83SnEA" bindsTo="_-scR5VoGEeS2WoXr83SnEA">
+ <type href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+ <part xmi:id="_-scR01oGEeS2WoXr83SnEA">
+ <referredProperty href="UmlMM.xml#_-sSbk1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR1FoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR4loGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_-scR1VoGEeS2WoXr83SnEA">
+ <referredProperty href="UmlMM.xml#_-sSblFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR1loGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR41oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_-scR11oGEeS2WoXr83SnEA">
+ <referredProperty href="UmlMM.xml#_-sSblVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR2FoGEeS2WoXr83SnEA" bindsTo="_-scR5loGEeS2WoXr83SnEA">
+ <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ <referredClass href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xmi:type="flatemofqvt:RelationDomain" xmi:id="_-scR2VoGEeS2WoXr83SnEA" isCheckable="true" isEnforceable="true" typedModel="_-scRvVoGEeS2WoXr83SnEA"
+ rootVariable="_-scR51oGEeS2WoXr83SnEA">
+ <pattern xmi:id="_-scR2loGEeS2WoXr83SnEA">
+ <templateExpression xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR21oGEeS2WoXr83SnEA" bindsTo="_-scR51oGEeS2WoXr83SnEA">
+ <type href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+ <part xmi:id="_-scR3FoGEeS2WoXr83SnEA">
+ <referredProperty href="RelMM.xml#_-scRg1oGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR3VoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR4loGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_-scR3loGEeS2WoXr83SnEA">
+ <referredProperty href="RelMM.xml#_-scRhFoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR31oGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR5FoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <part xmi:id="_-scR4FoGEeS2WoXr83SnEA">
+ <referredProperty href="RelMM.xml#_-scRhVoGEeS2WoXr83SnEA"/>
+ <value xmi:type="flatemofqvt:ObjectTemplateExp" xmi:id="_-scR4VoGEeS2WoXr83SnEA" bindsTo="_-scR6FoGEeS2WoXr83SnEA">
+ <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ <referredClass href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ </value>
+ </part>
+ <referredClass href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable xmi:id="_-scR4loGEeS2WoXr83SnEA" name="n" isRequired="false">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scR41oGEeS2WoXr83SnEA" name="utyp" isRequired="false" domainAssignment="_-scRzloGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scR5FoGEeS2WoXr83SnEA" name="rtyp" isRequired="false">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scR5VoGEeS2WoXr83SnEA" name="a" templateExp="_-scR0loGEeS2WoXr83SnEA">
+ <type href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scR5loGEeS2WoXr83SnEA" name="c" templateExp="_-scR2FoGEeS2WoXr83SnEA">
+ <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scR51oGEeS2WoXr83SnEA" name="cl" templateExp="_-scR21oGEeS2WoXr83SnEA">
+ <type href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+ </variable>
+ <variable xmi:id="_-scR6FoGEeS2WoXr83SnEA" name="t" templateExp="_-scR4VoGEeS2WoXr83SnEA">
+ <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ </variable>
+ <when xmi:id="_-scR6VoGEeS2WoXr83SnEA">
+ <predicate xmi:id="_-scR6loGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:RelationCallExp" xmi:id="_-scR61oGEeS2WoXr83SnEA" referredRelation="_-scRvloGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR7FoGEeS2WoXr83SnEA" referredVariable="_-scR5loGEeS2WoXr83SnEA">
+ <type href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ </argument>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR7VoGEeS2WoXr83SnEA" referredVariable="_-scR6FoGEeS2WoXr83SnEA">
+ <type href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ </argument>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where xmi:id="_-scR7loGEeS2WoXr83SnEA">
+ <predicate xmi:id="_-scR71oGEeS2WoXr83SnEA">
+ <conditionExpression xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scR8FoGEeS2WoXr83SnEA" name="=">
+ <type href="OCL.xml#_-scN91oGEeS2WoXr83SnEA"/>
+ <source xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR8VoGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR5FoGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </source>
+ <argument xmi:type="flatemofqvt:OperationCallExp" xmi:id="_-scR8loGEeS2WoXr83SnEA" referredOperation="_-scRoloGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ <argument xmi:type="flatemofqvt:VariableExp" xmi:id="_-scR81oGEeS2WoXr83SnEA" isRequired="false" referredVariable="_-scR41oGEeS2WoXr83SnEA">
+ <type href="OCL.xml#_-scOaVoGEeS2WoXr83SnEA"/>
+ </argument>
+ </argument>
+ <referredOperation href="OCL.xml#_-scOdVoGEeS2WoXr83SnEA"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <ownedKey xmi:id="_-scR9FoGEeS2WoXr83SnEA">
+ <identifies href="UmlMM.xml#_-sSblloGEeS2WoXr83SnEA"/>
+ <part href="UmlMM.xml#_-sSbmFoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_-scR9VoGEeS2WoXr83SnEA">
+ <identifies href="UmlMM.xml#_-sSbkloGEeS2WoXr83SnEA"/>
+ <part href="UmlMM.xml#_-sSbk1oGEeS2WoXr83SnEA"/>
+ <part href="UmlMM.xml#_-sSblVoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_-scR9loGEeS2WoXr83SnEA">
+ <identifies href="RelMM.xml#_-scRiFoGEeS2WoXr83SnEA"/>
+ <part href="RelMM.xml#_-scRiloGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ <ownedKey xmi:id="_-scR91oGEeS2WoXr83SnEA">
+ <identifies href="RelMM.xml#_-scRgloGEeS2WoXr83SnEA"/>
+ <part href="RelMM.xml#_-scRg1oGEeS2WoXr83SnEA"/>
+ <part href="RelMM.xml#_-scRhVoGEeS2WoXr83SnEA"/>
+ </ownedKey>
+ </nestedPackage>
+ <unit xmi:id="_-scR-FoGEeS2WoXr83SnEA" name="umlmm">
+ <ownedComment xmi:id="_-scR-VoGEeS2WoXr83SnEA" body="*****************************************************************************
Copyright (c) 2007,2008 Tata Consultancy Services and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html

Contributors:
TCS - initial implementation for ModelMorf
E.D.Willink - alignment with evolved specification
*****************************************************************************"/>
+ <usedPackage xmi:type="flatemofqvt:Package" href="UmlMM.xml#_-sSbkVoGEeS2WoXr83SnEA"/>
+ </unit>
+ <unit xmi:id="_-scR-loGEeS2WoXr83SnEA" name="relmm">
+ <usedPackage xmi:type="flatemofqvt:Package" href="RelMM.xml#_-scRgVoGEeS2WoXr83SnEA"/>
+ </unit>
+</flatemofqvt:RelationModel>