summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Eidsness2014-04-07 08:42:38 (EDT)
committerAndrew Eidsness2014-04-28 09:15:57 (EDT)
commit60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee (patch)
tree76a7e63ed8804c78cdf34cbf90cf2a8268b00e56
parent736db7e86c838a6a162b77b2c69b5a5a6a221029 (diff)
downloadorg.eclipse.papyrus-60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee.zip
org.eclipse.papyrus-60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee.tar.gz
org.eclipse.papyrus-60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee.tar.bz2
Bug 425215: Duplicate #include directivesrefs/changes/75/24575/6
When class uses more than one type from the AnsiCLibrary package, multiple, identical #include directives are generated. I've created a utility rule to generate #include directives. The parameter to the rule is a string containing the path of the file to be included. The rule also fixes a problem where #include's were specifying system includes (angle-bracket strings) instead of user includes (quoted strings). Include directives are now generated in two steps. In the first step, all dependencies are examined to create an ordered set of strings with the include paths. In the second step the new utility rule is used to generate the directive. Change-Id: I11b784f1def4875ecf2c40cae7c3995d7666ef48 Signed-off-by: Andrew Eidsness <eclipse@jfront.com>
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.emtl559
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.mtl7
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.emtl669
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.mtl12
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.emtl435
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.mtl6
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.emtl925
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.mtl12
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.emtl138
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.mtl6
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.emtl319
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.mtl4
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.emtl1165
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.mtl71
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.emtl439
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.mtl17
16 files changed, 2683 insertions, 2101 deletions
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.emtl
index 4eaed4e..86c8b39 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.emtl
@@ -45,39 +45,59 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;#include &lt;"/>
- <body xsi:type="mtl:QueryInvocation">
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+ <body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
- <argument xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppBindBody/class">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </source>
+ <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
</source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/"/>
- <body xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <source xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppBindBody/class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </source>
- <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>
- <body xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <argument xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </argument>
+ </argument>
</argument>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">&#xA;&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="CppIncludeUtils.emtl#/0/CppIncludeBody"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/11">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
@@ -85,7 +105,7 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/openNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/14">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
@@ -93,19 +113,37 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="Constants.emtl#/0/constDerivedIncludes"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
- <body xsi:type="mtl:TemplateInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/16">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </argument>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
+ <body xsi:type="mtl:ForBlock">
+ <body xsi:type="mtl:TemplateInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="path" referredVariable="/0/CppBindBody/%.17/path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+ <loopVariable name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </loopVariable>
+ <iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/14/OrderedSet(String)">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/14/Sequence(String)">
+ <source xsi:type="mtl:QueryInvocation" eType="/14/Sequence(String)">
+ <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludes"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </argument>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/flatten"/>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/asOrderedSet"/>
+ </iterSet>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;/************************************************************/&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;/************************************************************/&#xA;"/>
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="template class "/>
@@ -115,12 +153,12 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:VariableExp" name="templateElement" referredVariable="/0/CppBindBody/%.23/%/templateElement">
+ <source xsi:type="ocl.ecore:VariableExp" name="templateElement" referredVariable="/0/CppBindBody/%.19/%/templateElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
</source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/20/NamedElement">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/22/NamedElement">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
@@ -132,12 +170,12 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/CppTemplates.emtl#/0/CppTemplateBindingParameter"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/24">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/26">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateParameterSubstitution"/>
</argument>
</body>
- <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/18/Set(TemplateParameterSubstitution)">
- <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindBody/%.23/tb">
+ <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/14/Set(TemplateParameterSubstitution)">
+ <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindBody/%.19/tb">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding/parameterSubstitution"/>
@@ -148,9 +186,9 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:OperationCallExp" eType="/18/Sequence(Element)">
- <source xsi:type="ocl.ecore:PropertyCallExp" eType="/18/Set(Element)">
- <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindBody/%.23/tb">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/14/Sequence(Element)">
+ <source xsi:type="ocl.ecore:PropertyCallExp" eType="/14/Set(Element)">
+ <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindBody/%.19/tb">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//DirectedRelationship/target"/>
@@ -166,7 +204,7 @@
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getTemplateBindings"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/17">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/20">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</initExpression>
@@ -176,7 +214,7 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/closeNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/27">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/29">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
@@ -199,6 +237,13 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eAnnotations>
+ <eOperations name="+">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="other">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -308,6 +353,18 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
+ <eOperations name="IncludeDirective">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL">
+ <references href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ </eAnnotations>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
<eOperations name="getHeaderSuffix">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
@@ -353,14 +410,14 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateParameterSubstitution"/>
</eParameters>
</eOperations>
- <eOperations name="CppClassAllIncludesDeclaration">
+ <eOperations name="CppClassAllIncludes">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
- <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclaration"/>
+ <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludes"/>
</eAnnotations>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eType xsi:type="ocl.ecore:SequenceType" href="util/clazz/CppClassIncludeClassDeclaration.emtl#/3/Sequence(String)"/>
<eParameters name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
@@ -483,19 +540,13 @@
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
<ecore:EPackage name="collections">
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(String)" instanceClassName="java.util.LinkedHashSet">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
<eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Element)" instanceClassName="java.util.Set">
<elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
</eClassifiers>
@@ -509,6 +560,24 @@
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="i">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </ocl.ecore:Variable>
<ecore:EPackage name="types">
<eClassifiers xsi:type="ocl.ecore:TypeType" name="NamedElement">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
@@ -544,7 +613,7 @@
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/CppBindBody">
<details key="start" value="637"/>
- <details key="end" value="1652"/>
+ <details key="end" value="1743"/>
<details key="line" value="12"/>
</eAnnotations>
<eAnnotations source="positions.1" references="/0/CppBindBody/%">
@@ -609,270 +678,330 @@
</eAnnotations>
<eAnnotations source="positions.13" references="/0/CppBindBody/%.8">
<details key="start" value="937"/>
- <details key="end" value="948"/>
+ <details key="end" value="938"/>
<details key="line" value="22"/>
</eAnnotations>
<eAnnotations source="positions.14" references="/0/CppBindBody/%.9">
- <details key="start" value="949"/>
- <details key="end" value="971"/>
+ <details key="start" value="939"/>
+ <details key="end" value="1026"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.15" references="/0/CppBindBody/%.9/%">
- <details key="start" value="949"/>
- <details key="end" value="957"/>
+ <details key="start" value="957"/>
+ <details key="end" value="1024"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.16" references="/0/CppBindBody/%.9/%/%">
+ <details key="start" value="957"/>
+ <details key="end" value="1004"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.17" references="/0/CppBindBody/%.9/%/%/%">
+ <details key="start" value="957"/>
+ <details key="end" value="998"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.16" references="/0/CppBindBody/%.9/%/self">
+ <eAnnotations source="positions.18" references="/0/CppBindBody/%.9/%/%/%/%">
+ <details key="start" value="957"/>
+ <details key="end" value="985"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.19" references="/0/CppBindBody/%.9/%/%/%/%/%">
+ <details key="start" value="957"/>
+ <details key="end" value="979"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.20" references="/0/CppBindBody/%.9/%/%/%/%/%/%">
+ <details key="start" value="957"/>
+ <details key="end" value="965"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.21" references="/0/CppBindBody/%.9/%/%/%/%/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.17" references="/0/CppBindBody/%.10">
- <details key="start" value="973"/>
- <details key="end" value="974"/>
- <details key="line" value="22"/>
- </eAnnotations>
- <eAnnotations source="positions.18" references="/0/CppBindBody/%.11">
- <details key="start" value="975"/>
+ <eAnnotations source="positions.22" references="/0/CppBindBody/%.9/%/%/%/%/%.1">
+ <details key="start" value="982"/>
<details key="end" value="985"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.19" references="/0/CppBindBody/%.11/class">
- <details key="start" value="975"/>
- <details key="end" value="980"/>
+ <eAnnotations source="positions.23" references="/0/CppBindBody/%.9/%/%/%/%.1">
+ <details key="start" value="988"/>
+ <details key="end" value="998"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.20" references="/0/CppBindBody/%.12">
- <details key="start" value="987"/>
- <details key="end" value="988"/>
- <details key="line" value="22"/>
+ <eAnnotations source="positions.24" references="/0/CppBindBody/%.9/%/%/%/%.1/class">
+ <details key="start" value="988"/>
+ <details key="end" value="993"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.25" references="/0/CppBindBody/%.9/%/%/%.1">
+ <details key="start" value="1001"/>
+ <details key="end" value="1004"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.21" references="/0/CppBindBody/%.13">
- <details key="start" value="989"/>
- <details key="end" value="1006"/>
+ <eAnnotations source="positions.26" references="/0/CppBindBody/%.9/%/%.1">
+ <details key="start" value="1007"/>
+ <details key="end" value="1024"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.22" references="/0/CppBindBody/%.13/self">
+ <eAnnotations source="positions.27" references="/0/CppBindBody/%.9/%/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.23" references="/0/CppBindBody/%.14">
- <details key="start" value="1008"/>
- <details key="end" value="1011"/>
- <details key="line" value="22"/>
+ <eAnnotations source="positions.28" references="/0/CppBindBody/%.10">
+ <details key="start" value="1028"/>
+ <details key="end" value="1030"/>
+ <details key="line" value="23"/>
</eAnnotations>
- <eAnnotations source="positions.24" references="/0/CppBindBody/%.15">
- <details key="start" value="1012"/>
- <details key="end" value="1028"/>
+ <eAnnotations source="positions.29" references="/0/CppBindBody/%.11">
+ <details key="start" value="1031"/>
+ <details key="end" value="1047"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.25" references="/0/CppBindBody/%.15/self">
+ <eAnnotations source="positions.30" references="/0/CppBindBody/%.11/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.26" references="/0/CppBindBody/%.16">
- <details key="start" value="1030"/>
- <details key="end" value="1032"/>
+ <eAnnotations source="positions.31" references="/0/CppBindBody/%.12">
+ <details key="start" value="1049"/>
+ <details key="end" value="1051"/>
<details key="line" value="25"/>
</eAnnotations>
- <eAnnotations source="positions.27" references="/0/CppBindBody/%.17">
- <details key="start" value="1033"/>
- <details key="end" value="1041"/>
+ <eAnnotations source="positions.32" references="/0/CppBindBody/%.13">
+ <details key="start" value="1052"/>
+ <details key="end" value="1060"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.28" references="/0/CppBindBody/%.17/self">
+ <eAnnotations source="positions.33" references="/0/CppBindBody/%.13/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.29" references="/0/CppBindBody/%.18">
- <details key="start" value="1043"/>
- <details key="end" value="1045"/>
+ <eAnnotations source="positions.34" references="/0/CppBindBody/%.14">
+ <details key="start" value="1062"/>
+ <details key="end" value="1064"/>
<details key="line" value="27"/>
</eAnnotations>
- <eAnnotations source="positions.30" references="/0/CppBindBody/%.19">
- <details key="start" value="1046"/>
- <details key="end" value="1068"/>
+ <eAnnotations source="positions.35" references="/0/CppBindBody/%.15">
+ <details key="start" value="1065"/>
+ <details key="end" value="1087"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.31" references="/0/CppBindBody/%.19/self">
+ <eAnnotations source="positions.36" references="/0/CppBindBody/%.15/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.32" references="/0/CppBindBody/%.20">
- <details key="start" value="1070"/>
- <details key="end" value="1071"/>
+ <eAnnotations source="positions.37" references="/0/CppBindBody/%.16">
+ <details key="start" value="1089"/>
+ <details key="end" value="1091"/>
<details key="line" value="29"/>
</eAnnotations>
- <eAnnotations source="positions.33" references="/0/CppBindBody/%.21">
- <details key="start" value="1072"/>
- <details key="end" value="1104"/>
+ <eAnnotations source="positions.38" references="/0/CppBindBody/%.17">
+ <details key="start" value="1091"/>
+ <details key="end" value="1197"/>
+ <details key="line" value="30"/>
+ </eAnnotations>
+ <eAnnotations source="positions.39" references="/0/CppBindBody/%.17/%">
+ <details key="start" value="1165"/>
+ <details key="end" value="1188"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.34" references="/0/CppBindBody/%.21/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.40" references="/0/CppBindBody/%.17/%/path">
+ <details key="start" value="1165"/>
+ <details key="end" value="1169"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.35" references="/0/CppBindBody/%.22">
- <details key="start" value="1106"/>
- <details key="end" value="1171"/>
+ <eAnnotations source="positions.41" references="/0/CppBindBody/%.17/%.1">
+ <details key="start" value="1190"/>
+ <details key="end" value="1191"/>
+ <details key="line" value="32"/>
+ </eAnnotations>
+ <eAnnotations source="positions.42" references="/0/CppBindBody/%.17/path">
+ <details key="start" value="1097"/>
+ <details key="end" value="1110"/>
<details key="line" value="30"/>
</eAnnotations>
- <eAnnotations source="positions.36" references="/0/CppBindBody/%.23">
- <details key="start" value="1171"/>
- <details key="end" value="1443"/>
- <details key="line" value="32"/>
+ <eAnnotations source="positions.43" references="/0/CppBindBody/%.17/%.2">
+ <details key="start" value="1113"/>
+ <details key="end" value="1161"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.44" references="/0/CppBindBody/%.17/%.2/%">
+ <details key="start" value="1113"/>
+ <details key="end" value="1145"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.37" references="/0/CppBindBody/%.23/%">
- <details key="start" value="1222"/>
- <details key="end" value="1437"/>
+ <eAnnotations source="positions.45" references="/0/CppBindBody/%.17/%.2/%/%">
+ <details key="start" value="1113"/>
+ <details key="end" value="1134"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.46" references="/0/CppBindBody/%.17/%.2/%/%/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.47" references="/0/CppBindBody/%.18">
+ <details key="start" value="1198"/>
+ <details key="end" value="1262"/>
<details key="line" value="33"/>
</eAnnotations>
- <eAnnotations source="positions.38" references="/0/CppBindBody/%.23/%/%">
- <details key="start" value="1289"/>
- <details key="end" value="1304"/>
- <details key="line" value="34"/>
+ <eAnnotations source="positions.48" references="/0/CppBindBody/%.19">
+ <details key="start" value="1262"/>
+ <details key="end" value="1534"/>
+ <details key="line" value="35"/>
+ </eAnnotations>
+ <eAnnotations source="positions.49" references="/0/CppBindBody/%.19/%">
+ <details key="start" value="1313"/>
+ <details key="end" value="1528"/>
+ <details key="line" value="36"/>
+ </eAnnotations>
+ <eAnnotations source="positions.50" references="/0/CppBindBody/%.19/%/%">
+ <details key="start" value="1380"/>
+ <details key="end" value="1395"/>
+ <details key="line" value="37"/>
</eAnnotations>
- <eAnnotations source="positions.39" references="/0/CppBindBody/%.23/%/%.1">
- <details key="start" value="1305"/>
- <details key="end" value="1355"/>
+ <eAnnotations source="positions.51" references="/0/CppBindBody/%.19/%/%.1">
+ <details key="start" value="1396"/>
+ <details key="end" value="1446"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.40" references="/0/CppBindBody/%.23/%/%.1/%">
- <details key="start" value="1305"/>
- <details key="end" value="1350"/>
+ <eAnnotations source="positions.52" references="/0/CppBindBody/%.19/%/%.1/%">
+ <details key="start" value="1396"/>
+ <details key="end" value="1441"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.41" references="/0/CppBindBody/%.23/%/%.1/%/%">
- <details key="start" value="1305"/>
- <details key="end" value="1326"/>
+ <eAnnotations source="positions.53" references="/0/CppBindBody/%.19/%/%.1/%/%">
+ <details key="start" value="1396"/>
+ <details key="end" value="1417"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.42" references="/0/CppBindBody/%.23/%/%.1/%/%/templateElement">
- <details key="start" value="1305"/>
- <details key="end" value="1320"/>
+ <eAnnotations source="positions.54" references="/0/CppBindBody/%.19/%/%.1/%/%/templateElement">
+ <details key="start" value="1396"/>
+ <details key="end" value="1411"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.43" references="/0/CppBindBody/%.23/%/%.1/%/%.1">
- <details key="start" value="1337"/>
- <details key="end" value="1349"/>
+ <eAnnotations source="positions.55" references="/0/CppBindBody/%.19/%/%.1/%/%.1">
+ <details key="start" value="1428"/>
+ <details key="end" value="1440"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.44" references="/0/CppBindBody/%.23/%/%.2">
- <details key="start" value="1357"/>
- <details key="end" value="1358"/>
- <details key="line" value="34"/>
+ <eAnnotations source="positions.56" references="/0/CppBindBody/%.19/%/%.2">
+ <details key="start" value="1448"/>
+ <details key="end" value="1449"/>
+ <details key="line" value="37"/>
</eAnnotations>
- <eAnnotations source="positions.45" references="/0/CppBindBody/%.23/%/%.3">
- <details key="start" value="1358"/>
- <details key="end" value="1428"/>
- <details key="line" value="34"/>
+ <eAnnotations source="positions.57" references="/0/CppBindBody/%.19/%/%.3">
+ <details key="start" value="1449"/>
+ <details key="end" value="1519"/>
+ <details key="line" value="37"/>
</eAnnotations>
- <eAnnotations source="positions.46" references="/0/CppBindBody/%.23/%/%.3/%">
- <details key="start" value="1391"/>
- <details key="end" value="1420"/>
+ <eAnnotations source="positions.58" references="/0/CppBindBody/%.19/%/%.3/%">
+ <details key="start" value="1482"/>
+ <details key="end" value="1511"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.47" references="/0/CppBindBody/%.23/%/%.3/%/self">
+ <eAnnotations source="positions.59" references="/0/CppBindBody/%.19/%/%.3/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.48" references="/0/CppBindBody/%.23/%/%.3/%.1">
- <details key="start" value="1364"/>
- <details key="end" value="1388"/>
+ <eAnnotations source="positions.60" references="/0/CppBindBody/%.19/%/%.3/%.1">
+ <details key="start" value="1455"/>
+ <details key="end" value="1479"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.49" references="/0/CppBindBody/%.23/%/%.3/%.1/tb">
- <details key="start" value="1364"/>
- <details key="end" value="1366"/>
+ <eAnnotations source="positions.61" references="/0/CppBindBody/%.19/%/%.3/%.1/tb">
+ <details key="start" value="1455"/>
+ <details key="end" value="1457"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.50" references="/0/CppBindBody/%.23/%/%.4">
- <details key="start" value="1428"/>
- <details key="end" value="1431"/>
- <details key="line" value="34"/>
+ <eAnnotations source="positions.62" references="/0/CppBindBody/%.19/%/%.4">
+ <details key="start" value="1519"/>
+ <details key="end" value="1522"/>
+ <details key="line" value="37"/>
</eAnnotations>
- <eAnnotations source="positions.51" references="/0/CppBindBody/%.23/%/templateElement">
- <details key="start" value="1227"/>
- <details key="end" value="1287"/>
- <details key="line" value="33"/>
+ <eAnnotations source="positions.63" references="/0/CppBindBody/%.19/%/templateElement">
+ <details key="start" value="1318"/>
+ <details key="end" value="1378"/>
+ <details key="line" value="36"/>
</eAnnotations>
- <eAnnotations source="positions.52" references="/0/CppBindBody/%.23/%/templateElement/%">
- <details key="start" value="1256"/>
- <details key="end" value="1288"/>
+ <eAnnotations source="positions.64" references="/0/CppBindBody/%.19/%/templateElement/%">
+ <details key="start" value="1347"/>
+ <details key="end" value="1379"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.53" references="/0/CppBindBody/%.23/%/templateElement/%/%">
- <details key="start" value="1256"/>
- <details key="end" value="1279"/>
+ <eAnnotations source="positions.65" references="/0/CppBindBody/%.19/%/templateElement/%/%">
+ <details key="start" value="1347"/>
+ <details key="end" value="1370"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.54" references="/0/CppBindBody/%.23/%/templateElement/%/%/%">
- <details key="start" value="1256"/>
- <details key="end" value="1265"/>
+ <eAnnotations source="positions.66" references="/0/CppBindBody/%.19/%/templateElement/%/%/%">
+ <details key="start" value="1347"/>
+ <details key="end" value="1356"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.55" references="/0/CppBindBody/%.23/%/templateElement/%/%/%/tb">
- <details key="start" value="1256"/>
- <details key="end" value="1258"/>
+ <eAnnotations source="positions.67" references="/0/CppBindBody/%.19/%/templateElement/%/%/%/tb">
+ <details key="start" value="1347"/>
+ <details key="end" value="1349"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.56" references="/0/CppBindBody/%.23/tb">
- <details key="start" value="1176"/>
- <details key="end" value="1220"/>
- <details key="line" value="32"/>
+ <eAnnotations source="positions.68" references="/0/CppBindBody/%.19/tb">
+ <details key="start" value="1267"/>
+ <details key="end" value="1311"/>
+ <details key="line" value="35"/>
</eAnnotations>
- <eAnnotations source="positions.57" references="/0/CppBindBody/%.23/tb/%">
- <details key="start" value="1200"/>
- <details key="end" value="1221"/>
+ <eAnnotations source="positions.69" references="/0/CppBindBody/%.19/tb/%">
+ <details key="start" value="1291"/>
+ <details key="end" value="1312"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.58" references="/0/CppBindBody/%.23/tb/%/self">
+ <eAnnotations source="positions.70" references="/0/CppBindBody/%.19/tb/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.59" references="/0/CppBindBody/%.24">
- <details key="start" value="1444"/>
- <details key="end" value="1445"/>
- <details key="line" value="36"/>
+ <eAnnotations source="positions.71" references="/0/CppBindBody/%.20">
+ <details key="start" value="1535"/>
+ <details key="end" value="1536"/>
+ <details key="line" value="39"/>
</eAnnotations>
- <eAnnotations source="positions.60" references="/0/CppBindBody/%.25">
- <details key="start" value="1446"/>
- <details key="end" value="1455"/>
+ <eAnnotations source="positions.72" references="/0/CppBindBody/%.21">
+ <details key="start" value="1537"/>
+ <details key="end" value="1546"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.61" references="/0/CppBindBody/%.25/self">
+ <eAnnotations source="positions.73" references="/0/CppBindBody/%.21/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.62" references="/0/CppBindBody/%.26">
- <details key="start" value="1457"/>
- <details key="end" value="1542"/>
- <details key="line" value="38"/>
+ <eAnnotations source="positions.74" references="/0/CppBindBody/%.22">
+ <details key="start" value="1548"/>
+ <details key="end" value="1633"/>
+ <details key="line" value="41"/>
</eAnnotations>
- <eAnnotations source="positions.63" references="/0/CppBindBody/%.27">
- <details key="start" value="1543"/>
- <details key="end" value="1553"/>
+ <eAnnotations source="positions.75" references="/0/CppBindBody/%.23">
+ <details key="start" value="1634"/>
+ <details key="end" value="1644"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.64" references="/0/CppBindBody/%.27/class">
- <details key="start" value="1543"/>
- <details key="end" value="1548"/>
+ <eAnnotations source="positions.76" references="/0/CppBindBody/%.23/class">
+ <details key="start" value="1634"/>
+ <details key="end" value="1639"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.65" references="/0/CppBindBody/%.28">
- <details key="start" value="1555"/>
- <details key="end" value="1640"/>
- <details key="line" value="40"/>
+ <eAnnotations source="positions.77" references="/0/CppBindBody/%.24">
+ <details key="start" value="1646"/>
+ <details key="end" value="1731"/>
+ <details key="line" value="43"/>
</eAnnotations>
- <eAnnotations source="positions.66" references="/0/CppBindBody/class">
+ <eAnnotations source="positions.78" references="/0/CppBindBody/class">
<details key="start" value="666"/>
<details key="end" value="679"/>
<details key="line" value="12"/>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.mtl
index f2e79ce..bb2cf85 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindBody.mtl
@@ -19,14 +19,17 @@
[CppIncludePreBody()/]
[constIncludeHFile()/]
-#include <[_package.getFullPath()/]/[class.name/].[getHeaderSuffix()/]>
+[IncludeDirective( _package.getFullPath() + '/' + class.name + '.' + getHeaderSuffix() )/]
[CppIncludeBody()/]
[openNS()/]
[constDerivedIncludes()/]
-[CppClassAllIncludesDeclaration()/]
+
+[for (path : String | CppClassAllIncludes()->flatten()->asOrderedSet())]
+[path.IncludeDirective()/]
+[/for]
/************************************************************/
[let tb : TemplateBinding = getTemplateBindings()]
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.emtl
index c8cba76..f372ad6 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.emtl
@@ -36,80 +36,123 @@
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" template binding header&#xA; ************************************************************/&#xA;&#xA;"/>
- <body xsi:type="mtl:TemplateInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppOwnerPackageIncludeDeclaration"/>
- <argument xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/9">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <body xsi:type="mtl:ForBlock">
+ <body xsi:type="mtl:TemplateInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="path" referredVariable="/0/CppBindHeader/%.7/path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+ <loopVariable name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </loopVariable>
+ <iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/9/OrderedSet(String)">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/9/Sequence(String)">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/9/Sequence(String)" referredOperation="/1/Collection(T)_Class/addAll">
+ <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/9/Sequence(String)" kind="Sequence">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <item xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/cppOwnerPackageIncludePath"/>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
+ </argument>
+ </item>
+ </part>
+ </source>
+ <argument xsi:type="mtl:QueryInvocation" eType="/9/Sequence(String)">
+ <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludes"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </argument>
+ </argument>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/flatten"/>
</source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
- </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/asOrderedSet"/>
+ </iterSet>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
- <body xsi:type="mtl:TemplateInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="CppIncludeUtils.emtl#/0/CppIncludeHeader"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/11">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="#include &lt;"/>
- <body xsi:type="mtl:QueryInvocation">
+ <body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
- <argument xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/"/>
- <body xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <source xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
- <source xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:VariableExp" name="templateElement" referredVariable="/0/CppBindHeader/%.13/%/templateElement">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/19">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ <source xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="templateElement" referredVariable="/0/CppBindHeader/%.11/%/templateElement">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
+ </source>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/18/NamedElement">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
+ </source>
+ <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </argument>
</source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
</source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/16/NamedElement">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ <argument xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/19">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </argument>
</argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
- </source>
- <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>
- <body xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/18">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">&#xA;&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/openNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/19">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/20">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
@@ -120,12 +163,12 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:VariableExp" name="templateElement" referredVariable="/0/CppBindHeader/%.13/%/templateElement">
+ <source xsi:type="ocl.ecore:VariableExp" name="templateElement" referredVariable="/0/CppBindHeader/%.11/%/templateElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
</source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/16/NamedElement">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/18/NamedElement">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
@@ -137,12 +180,12 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/CppTemplates.emtl#/0/CppTemplateBindingParameter"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/24">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateParameterSubstitution"/>
</argument>
</body>
- <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/13/Set(TemplateParameterSubstitution)">
- <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindHeader/%.13/tb">
+ <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/9/Set(TemplateParameterSubstitution)">
+ <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindHeader/%.11/tb">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding/parameterSubstitution"/>
@@ -160,7 +203,7 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/closeNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/27">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/28">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</body>
@@ -169,9 +212,9 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:OperationCallExp" eType="/13/Sequence(Element)">
- <source xsi:type="ocl.ecore:PropertyCallExp" eType="/13/Set(Element)">
- <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindHeader/%.13/tb">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/9/Sequence(Element)">
+ <source xsi:type="ocl.ecore:PropertyCallExp" eType="/9/Set(Element)">
+ <source xsi:type="ocl.ecore:VariableExp" name="tb" referredVariable="/0/CppBindHeader/%.11/tb">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//DirectedRelationship/target"/>
@@ -187,7 +230,7 @@
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateBinding"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getTemplateBindings"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/16">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</argument>
</initExpression>
@@ -212,6 +255,13 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eAnnotations>
+ <eOperations name="+">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="other">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -297,26 +347,26 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
- <eOperations name="CppOwnerPackageIncludeDeclaration">
+ <eOperations name="cppOwnerPackageIncludePath">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
- <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppOwnerPackageIncludeDeclaration"/>
+ <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/cppOwnerPackageIncludePath"/>
</eAnnotations>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="pkg">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</eParameters>
</eOperations>
- <eOperations name="CppClassAllIncludesDeclaration">
+ <eOperations name="CppClassAllIncludes">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
- <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclaration"/>
+ <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludes"/>
</eAnnotations>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eType xsi:type="ocl.ecore:SequenceType" href="util/clazz/CppClassIncludeClassDeclaration.emtl#/3/Sequence(String)"/>
<eParameters name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
@@ -354,6 +404,18 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
+ <eOperations name="IncludeDirective">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL">
+ <references href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ </eAnnotations>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OclAny_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -364,6 +426,13 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
</eAnnotations>
+ <eOperations name="addAll">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+ <eParameters name="otherCollection">
+ <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Sequence(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -457,19 +526,16 @@
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
<ecore:EPackage name="collections">
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:CollectionType" name="Collection(String)">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(String)" instanceClassName="java.util.LinkedHashSet">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
<eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Element)" instanceClassName="java.util.Set">
<elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
</eClassifiers>
@@ -484,6 +550,24 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="i">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</ocl.ecore:Variable>
<ecore:EPackage name="types">
@@ -504,9 +588,6 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateParameterSubstitution"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
@@ -533,7 +614,7 @@
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/CppBindHeader">
<details key="start" value="508"/>
- <details key="end" value="1589"/>
+ <details key="end" value="1701"/>
<details key="line" value="10"/>
</eAnnotations>
<eAnnotations source="positions.1" references="/0/CppBindHeader/%">
@@ -587,301 +668,361 @@
<details key="line" value="15"/>
</eAnnotations>
<eAnnotations source="positions.11" references="/0/CppBindHeader/%.7">
- <details key="start" value="794"/>
- <details key="end" value="838"/>
- <details key="line" value="0"/>
+ <details key="start" value="793"/>
+ <details key="end" value="970"/>
+ <details key="line" value="18"/>
</eAnnotations>
<eAnnotations source="positions.12" references="/0/CppBindHeader/%.7/%">
- <details key="start" value="794"/>
- <details key="end" value="802"/>
+ <details key="start" value="938"/>
+ <details key="end" value="961"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.13" references="/0/CppBindHeader/%.7/%/self">
+ <eAnnotations source="positions.13" references="/0/CppBindHeader/%.7/%/path">
+ <details key="start" value="938"/>
+ <details key="end" value="942"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.14" references="/0/CppBindHeader/%.7/%.1">
+ <details key="start" value="963"/>
+ <details key="end" value="964"/>
+ <details key="line" value="24"/>
+ </eAnnotations>
+ <eAnnotations source="positions.15" references="/0/CppBindHeader/%.7/path">
+ <details key="start" value="799"/>
+ <details key="end" value="812"/>
+ <details key="line" value="18"/>
+ </eAnnotations>
+ <eAnnotations source="positions.16" references="/0/CppBindHeader/%.7/%.2">
+ <details key="start" value="816"/>
+ <details key="end" value="934"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.17" references="/0/CppBindHeader/%.7/%.2/%">
+ <details key="start" value="816"/>
+ <details key="end" value="915"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.18" references="/0/CppBindHeader/%.7/%.2/%/%">
+ <details key="start" value="816"/>
+ <details key="end" value="901"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.19" references="/0/CppBindHeader/%.7/%.2/%/%/%">
+ <details key="start" value="816"/>
+ <details key="end" value="865"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.20" references="/0/CppBindHeader/%.7/%.2/%/%/%/%/%">
+ <details key="start" value="826"/>
+ <details key="end" value="863"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.21" references="/0/CppBindHeader/%.7/%.2/%/%/%/%/%/%">
+ <details key="start" value="826"/>
+ <details key="end" value="834"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.22" references="/0/CppBindHeader/%.7/%.2/%/%/%/%/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.14" references="/0/CppBindHeader/%.8">
- <details key="start" value="840"/>
- <details key="end" value="842"/>
- <details key="line" value="19"/>
- </eAnnotations>
- <eAnnotations source="positions.15" references="/0/CppBindHeader/%.9">
- <details key="start" value="843"/>
- <details key="end" value="875"/>
+ <eAnnotations source="positions.23" references="/0/CppBindHeader/%.7/%.2/%/%/%.1">
+ <details key="start" value="878"/>
+ <details key="end" value="899"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.16" references="/0/CppBindHeader/%.9/self">
+ <eAnnotations source="positions.24" references="/0/CppBindHeader/%.7/%.2/%/%/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.17" references="/0/CppBindHeader/%.10">
- <details key="start" value="877"/>
- <details key="end" value="879"/>
- <details key="line" value="21"/>
+ <eAnnotations source="positions.25" references="/0/CppBindHeader/%.8">
+ <details key="start" value="971"/>
+ <details key="end" value="972"/>
+ <details key="line" value="25"/>
</eAnnotations>
- <eAnnotations source="positions.18" references="/0/CppBindHeader/%.11">
- <details key="start" value="880"/>
- <details key="end" value="898"/>
+ <eAnnotations source="positions.26" references="/0/CppBindHeader/%.9">
+ <details key="start" value="973"/>
+ <details key="end" value="991"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.19" references="/0/CppBindHeader/%.11/self">
+ <eAnnotations source="positions.27" references="/0/CppBindHeader/%.9/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.20" references="/0/CppBindHeader/%.12">
- <details key="start" value="900"/>
- <details key="end" value="902"/>
- <details key="line" value="23"/>
+ <eAnnotations source="positions.28" references="/0/CppBindHeader/%.10">
+ <details key="start" value="993"/>
+ <details key="end" value="995"/>
+ <details key="line" value="27"/>
</eAnnotations>
- <eAnnotations source="positions.21" references="/0/CppBindHeader/%.13">
- <details key="start" value="902"/>
- <details key="end" value="1384"/>
- <details key="line" value="24"/>
+ <eAnnotations source="positions.29" references="/0/CppBindHeader/%.11">
+ <details key="start" value="995"/>
+ <details key="end" value="1496"/>
+ <details key="line" value="28"/>
</eAnnotations>
- <eAnnotations source="positions.22" references="/0/CppBindHeader/%.13/%">
- <details key="start" value="953"/>
- <details key="end" value="1378"/>
- <details key="line" value="25"/>
+ <eAnnotations source="positions.30" references="/0/CppBindHeader/%.11/%">
+ <details key="start" value="1046"/>
+ <details key="end" value="1490"/>
+ <details key="line" value="29"/>
+ </eAnnotations>
+ <eAnnotations source="positions.31" references="/0/CppBindHeader/%.11/%/%">
+ <details key="start" value="1114"/>
+ <details key="end" value="1241"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.32" references="/0/CppBindHeader/%.11/%/%/%">
+ <details key="start" value="1132"/>
+ <details key="end" value="1239"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.23" references="/0/CppBindHeader/%.13/%/%">
- <details key="start" value="1020"/>
- <details key="end" value="1030"/>
- <details key="line" value="26"/>
+ <eAnnotations source="positions.33" references="/0/CppBindHeader/%.11/%/%/%/%">
+ <details key="start" value="1132"/>
+ <details key="end" value="1219"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.24" references="/0/CppBindHeader/%.13/%/%.1">
- <details key="start" value="1031"/>
- <details key="end" value="1053"/>
+ <eAnnotations source="positions.34" references="/0/CppBindHeader/%.11/%/%/%/%/%">
+ <details key="start" value="1132"/>
+ <details key="end" value="1213"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.25" references="/0/CppBindHeader/%.13/%/%.1/%">
- <details key="start" value="1031"/>
- <details key="end" value="1039"/>
+ <eAnnotations source="positions.35" references="/0/CppBindHeader/%.11/%/%/%/%/%/%">
+ <details key="start" value="1132"/>
+ <details key="end" value="1160"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.26" references="/0/CppBindHeader/%.13/%/%.1/%/self">
+ <eAnnotations source="positions.36" references="/0/CppBindHeader/%.11/%/%/%/%/%/%/%">
+ <details key="start" value="1132"/>
+ <details key="end" value="1154"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.37" references="/0/CppBindHeader/%.11/%/%/%/%/%/%/%/%">
+ <details key="start" value="1132"/>
+ <details key="end" value="1140"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.38" references="/0/CppBindHeader/%.11/%/%/%/%/%/%/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.27" references="/0/CppBindHeader/%.13/%/%.2">
- <details key="start" value="1055"/>
- <details key="end" value="1056"/>
- <details key="line" value="26"/>
+ <eAnnotations source="positions.39" references="/0/CppBindHeader/%.11/%/%/%/%/%/%/%.1">
+ <details key="start" value="1157"/>
+ <details key="end" value="1160"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.28" references="/0/CppBindHeader/%.13/%/%.3">
- <details key="start" value="1057"/>
- <details key="end" value="1107"/>
+ <eAnnotations source="positions.40" references="/0/CppBindHeader/%.11/%/%/%/%/%/%.1">
+ <details key="start" value="1163"/>
+ <details key="end" value="1213"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.29" references="/0/CppBindHeader/%.13/%/%.3/%">
- <details key="start" value="1057"/>
- <details key="end" value="1102"/>
+ <eAnnotations source="positions.41" references="/0/CppBindHeader/%.11/%/%/%/%/%/%.1/%">
+ <details key="start" value="1163"/>
+ <details key="end" value="1208"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.30" references="/0/CppBindHeader/%.13/%/%.3/%/%">
- <details key="start" value="1057"/>
- <details key="end" value="1078"/>
+ <eAnnotations source="positions.42" references="/0/CppBindHeader/%.11/%/%/%/%/%/%.1/%/%">
+ <details key="start" value="1163"/>
+ <details key="end" value="1184"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.31" references="/0/CppBindHeader/%.13/%/%.3/%/%/templateElement">
- <details key="start" value="1057"/>
- <details key="end" value="1072"/>
+ <eAnnotations source="positions.43" references="/0/CppBindHeader/%.11/%/%/%/%/%/%.1/%/%/templateElement">
+ <details key="start" value="1163"/>
+ <details key="end" value="1178"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.32" references="/0/CppBindHeader/%.13/%/%.3/%/%.1">
- <details key="start" value="1089"/>
- <details key="end" value="1101"/>
+ <eAnnotations source="positions.44" references="/0/CppBindHeader/%.11/%/%/%/%/%/%.1/%/%.1">
+ <details key="start" value="1195"/>
+ <details key="end" value="1207"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.33" references="/0/CppBindHeader/%.13/%/%.4">
- <details key="start" value="1109"/>
- <details key="end" value="1110"/>
- <details key="line" value="26"/>
+ <eAnnotations source="positions.45" references="/0/CppBindHeader/%.11/%/%/%/%/%.1">
+ <details key="start" value="1216"/>
+ <details key="end" value="1219"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.34" references="/0/CppBindHeader/%.13/%/%.5">
- <details key="start" value="1111"/>
- <details key="end" value="1128"/>
+ <eAnnotations source="positions.46" references="/0/CppBindHeader/%.11/%/%/%/%.1">
+ <details key="start" value="1222"/>
+ <details key="end" value="1239"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.35" references="/0/CppBindHeader/%.13/%/%.5/self">
+ <eAnnotations source="positions.47" references="/0/CppBindHeader/%.11/%/%/%/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.36" references="/0/CppBindHeader/%.13/%/%.6">
- <details key="start" value="1130"/>
- <details key="end" value="1133"/>
- <details key="line" value="26"/>
+ <eAnnotations source="positions.48" references="/0/CppBindHeader/%.11/%/%.1">
+ <details key="start" value="1243"/>
+ <details key="end" value="1245"/>
+ <details key="line" value="31"/>
</eAnnotations>
- <eAnnotations source="positions.37" references="/0/CppBindHeader/%.13/%/%.7">
- <details key="start" value="1134"/>
- <details key="end" value="1142"/>
+ <eAnnotations source="positions.49" references="/0/CppBindHeader/%.11/%/%.2">
+ <details key="start" value="1246"/>
+ <details key="end" value="1254"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.38" references="/0/CppBindHeader/%.13/%/%.7/self">
+ <eAnnotations source="positions.50" references="/0/CppBindHeader/%.11/%/%.2/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.39" references="/0/CppBindHeader/%.13/%/%.8">
- <details key="start" value="1144"/>
- <details key="end" value="1217"/>
- <details key="line" value="28"/>
+ <eAnnotations source="positions.51" references="/0/CppBindHeader/%.11/%/%.3">
+ <details key="start" value="1256"/>
+ <details key="end" value="1329"/>
+ <details key="line" value="32"/>
</eAnnotations>
- <eAnnotations source="positions.40" references="/0/CppBindHeader/%.13/%/%.9">
- <details key="start" value="1218"/>
- <details key="end" value="1268"/>
+ <eAnnotations source="positions.52" references="/0/CppBindHeader/%.11/%/%.4">
+ <details key="start" value="1330"/>
+ <details key="end" value="1380"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.41" references="/0/CppBindHeader/%.13/%/%.9/%">
- <details key="start" value="1218"/>
- <details key="end" value="1263"/>
+ <eAnnotations source="positions.53" references="/0/CppBindHeader/%.11/%/%.4/%">
+ <details key="start" value="1330"/>
+ <details key="end" value="1375"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.42" references="/0/CppBindHeader/%.13/%/%.9/%/%">
- <details key="start" value="1218"/>
- <details key="end" value="1239"/>
+ <eAnnotations source="positions.54" references="/0/CppBindHeader/%.11/%/%.4/%/%">
+ <details key="start" value="1330"/>
+ <details key="end" value="1351"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.43" references="/0/CppBindHeader/%.13/%/%.9/%/%/templateElement">
- <details key="start" value="1218"/>
- <details key="end" value="1233"/>
+ <eAnnotations source="positions.55" references="/0/CppBindHeader/%.11/%/%.4/%/%/templateElement">
+ <details key="start" value="1330"/>
+ <details key="end" value="1345"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.44" references="/0/CppBindHeader/%.13/%/%.9/%/%.1">
- <details key="start" value="1250"/>
- <details key="end" value="1262"/>
+ <eAnnotations source="positions.56" references="/0/CppBindHeader/%.11/%/%.4/%/%.1">
+ <details key="start" value="1362"/>
+ <details key="end" value="1374"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.45" references="/0/CppBindHeader/%.13/%/%.10">
- <details key="start" value="1270"/>
- <details key="end" value="1271"/>
- <details key="line" value="30"/>
+ <eAnnotations source="positions.57" references="/0/CppBindHeader/%.11/%/%.5">
+ <details key="start" value="1382"/>
+ <details key="end" value="1383"/>
+ <details key="line" value="34"/>
</eAnnotations>
- <eAnnotations source="positions.46" references="/0/CppBindHeader/%.13/%/%.11">
- <details key="start" value="1271"/>
- <details key="end" value="1341"/>
- <details key="line" value="30"/>
+ <eAnnotations source="positions.58" references="/0/CppBindHeader/%.11/%/%.6">
+ <details key="start" value="1383"/>
+ <details key="end" value="1453"/>
+ <details key="line" value="34"/>
</eAnnotations>
- <eAnnotations source="positions.47" references="/0/CppBindHeader/%.13/%/%.11/%">
- <details key="start" value="1304"/>
- <details key="end" value="1333"/>
+ <eAnnotations source="positions.59" references="/0/CppBindHeader/%.11/%/%.6/%">
+ <details key="start" value="1416"/>
+ <details key="end" value="1445"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.48" references="/0/CppBindHeader/%.13/%/%.11/%/self">
+ <eAnnotations source="positions.60" references="/0/CppBindHeader/%.11/%/%.6/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.49" references="/0/CppBindHeader/%.13/%/%.11/%.1">
- <details key="start" value="1277"/>
- <details key="end" value="1301"/>
+ <eAnnotations source="positions.61" references="/0/CppBindHeader/%.11/%/%.6/%.1">
+ <details key="start" value="1389"/>
+ <details key="end" value="1413"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.50" references="/0/CppBindHeader/%.13/%/%.11/%.1/tb">
- <details key="start" value="1277"/>
- <details key="end" value="1279"/>
+ <eAnnotations source="positions.62" references="/0/CppBindHeader/%.11/%/%.6/%.1/tb">
+ <details key="start" value="1389"/>
+ <details key="end" value="1391"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.51" references="/0/CppBindHeader/%.13/%/%.12">
- <details key="start" value="1341"/>
- <details key="end" value="1343"/>
- <details key="line" value="30"/>
+ <eAnnotations source="positions.63" references="/0/CppBindHeader/%.11/%/%.7">
+ <details key="start" value="1453"/>
+ <details key="end" value="1455"/>
+ <details key="line" value="34"/>
</eAnnotations>
- <eAnnotations source="positions.52" references="/0/CppBindHeader/%.13/%/%.13">
- <details key="start" value="1344"/>
- <details key="end" value="1354"/>
+ <eAnnotations source="positions.64" references="/0/CppBindHeader/%.11/%/%.8">
+ <details key="start" value="1456"/>
+ <details key="end" value="1466"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.53" references="/0/CppBindHeader/%.13/%/%.13/class">
- <details key="start" value="1344"/>
- <details key="end" value="1349"/>
+ <eAnnotations source="positions.65" references="/0/CppBindHeader/%.11/%/%.8/class">
+ <details key="start" value="1456"/>
+ <details key="end" value="1461"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.54" references="/0/CppBindHeader/%.13/%/%.14">
- <details key="start" value="1356"/>
- <details key="end" value="1359"/>
- <details key="line" value="30"/>
+ <eAnnotations source="positions.66" references="/0/CppBindHeader/%.11/%/%.9">
+ <details key="start" value="1468"/>
+ <details key="end" value="1471"/>
+ <details key="line" value="34"/>
</eAnnotations>
- <eAnnotations source="positions.55" references="/0/CppBindHeader/%.13/%/%.15">
- <details key="start" value="1360"/>
- <details key="end" value="1369"/>
+ <eAnnotations source="positions.67" references="/0/CppBindHeader/%.11/%/%.10">
+ <details key="start" value="1472"/>
+ <details key="end" value="1481"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.56" references="/0/CppBindHeader/%.13/%/%.15/self">
+ <eAnnotations source="positions.68" references="/0/CppBindHeader/%.11/%/%.10/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.57" references="/0/CppBindHeader/%.13/%/%.16">
- <details key="start" value="1371"/>
- <details key="end" value="1372"/>
- <details key="line" value="33"/>
+ <eAnnotations source="positions.69" references="/0/CppBindHeader/%.11/%/%.11">
+ <details key="start" value="1483"/>
+ <details key="end" value="1484"/>
+ <details key="line" value="37"/>
</eAnnotations>
- <eAnnotations source="positions.58" references="/0/CppBindHeader/%.13/%/templateElement">
- <details key="start" value="958"/>
- <details key="end" value="1018"/>
- <details key="line" value="25"/>
+ <eAnnotations source="positions.70" references="/0/CppBindHeader/%.11/%/templateElement">
+ <details key="start" value="1051"/>
+ <details key="end" value="1111"/>
+ <details key="line" value="29"/>
</eAnnotations>
- <eAnnotations source="positions.59" references="/0/CppBindHeader/%.13/%/templateElement/%">
- <details key="start" value="987"/>
- <details key="end" value="1019"/>
+ <eAnnotations source="positions.71" references="/0/CppBindHeader/%.11/%/templateElement/%">
+ <details key="start" value="1080"/>
+ <details key="end" value="1112"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.60" references="/0/CppBindHeader/%.13/%/templateElement/%/%">
- <details key="start" value="987"/>
- <details key="end" value="1010"/>
+ <eAnnotations source="positions.72" references="/0/CppBindHeader/%.11/%/templateElement/%/%">
+ <details key="start" value="1080"/>
+ <details key="end" value="1103"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.61" references="/0/CppBindHeader/%.13/%/templateElement/%/%/%">
- <details key="start" value="987"/>
- <details key="end" value="996"/>
+ <eAnnotations source="positions.73" references="/0/CppBindHeader/%.11/%/templateElement/%/%/%">
+ <details key="start" value="1080"/>
+ <details key="end" value="1089"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.62" references="/0/CppBindHeader/%.13/%/templateElement/%/%/%/tb">
- <details key="start" value="987"/>
- <details key="end" value="989"/>
+ <eAnnotations source="positions.74" references="/0/CppBindHeader/%.11/%/templateElement/%/%/%/tb">
+ <details key="start" value="1080"/>
+ <details key="end" value="1082"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.63" references="/0/CppBindHeader/%.13/tb">
- <details key="start" value="907"/>
- <details key="end" value="951"/>
- <details key="line" value="24"/>
+ <eAnnotations source="positions.75" references="/0/CppBindHeader/%.11/tb">
+ <details key="start" value="1000"/>
+ <details key="end" value="1044"/>
+ <details key="line" value="28"/>
</eAnnotations>
- <eAnnotations source="positions.64" references="/0/CppBindHeader/%.13/tb/%">
- <details key="start" value="931"/>
- <details key="end" value="952"/>
+ <eAnnotations source="positions.76" references="/0/CppBindHeader/%.11/tb/%">
+ <details key="start" value="1024"/>
+ <details key="end" value="1045"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.65" references="/0/CppBindHeader/%.13/tb/%/self">
+ <eAnnotations source="positions.77" references="/0/CppBindHeader/%.11/tb/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.66" references="/0/CppBindHeader/%.14">
- <details key="start" value="1385"/>
- <details key="end" value="1469"/>
- <details key="line" value="34"/>
+ <eAnnotations source="positions.78" references="/0/CppBindHeader/%.12">
+ <details key="start" value="1497"/>
+ <details key="end" value="1581"/>
+ <details key="line" value="38"/>
</eAnnotations>
- <eAnnotations source="positions.67" references="/0/CppBindHeader/%.15">
- <details key="start" value="1470"/>
- <details key="end" value="1480"/>
+ <eAnnotations source="positions.79" references="/0/CppBindHeader/%.13">
+ <details key="start" value="1582"/>
+ <details key="end" value="1592"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.68" references="/0/CppBindHeader/%.15/class">
- <details key="start" value="1470"/>
- <details key="end" value="1475"/>
+ <eAnnotations source="positions.80" references="/0/CppBindHeader/%.13/class">
+ <details key="start" value="1582"/>
+ <details key="end" value="1587"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.69" references="/0/CppBindHeader/%.16">
- <details key="start" value="1482"/>
- <details key="end" value="1577"/>
- <details key="line" value="36"/>
+ <eAnnotations source="positions.81" references="/0/CppBindHeader/%.14">
+ <details key="start" value="1594"/>
+ <details key="end" value="1689"/>
+ <details key="line" value="40"/>
</eAnnotations>
- <eAnnotations source="positions.70" references="/0/CppBindHeader/class">
+ <eAnnotations source="positions.82" references="/0/CppBindHeader/class">
<details key="start" value="539"/>
<details key="end" value="552"/>
<details key="line" value="10"/>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.mtl
index 1f50d6b..007a48b 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppBindHeader.mtl
@@ -15,15 +15,19 @@
[class.name/] template binding header
************************************************************/
-[_package.CppOwnerPackageIncludeDeclaration()/]
-
-[CppClassAllIncludesDeclaration()/]
+[for (path : String |
+ Sequence{ _package.cppOwnerPackageIncludePath() }
+ ->addAll( CppClassAllIncludes() )
+ ->flatten()
+ ->asOrderedSet())]
+[path.IncludeDirective()/]
+[/for]
[CppIncludeHeader()/]
[let tb : TemplateBinding = getTemplateBindings()]
[let templateElement : Element = tb.target->asSequence()->first()]
-#include <[_package.getFullPath()/]/[templateElement.owner.oclAsType(NamedElement).name/].[getHeaderSuffix()/]>
+[IncludeDirective( _package.getFullPath() + '/' + templateElement.owner.oclAsType(NamedElement).name + '.' + getHeaderSuffix() )/]
[openNS()/]
/************************************************************/
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.emtl
index d61fafb..3167866 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.emtl
@@ -46,39 +46,59 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;#include &lt;"/>
- <body xsi:type="mtl:QueryInvocation">
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+ <body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
- <argument xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getNearestPackage"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppClassBody/class">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </source>
+ <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
</source>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getNearestPackage"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/"/>
- <body xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <source xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppClassBody/class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </source>
- <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>
- <body xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ <argument xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </argument>
+ </argument>
</argument>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">&#xA;&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="CppIncludeUtils.emtl#/0/CppIncludeBody"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/11">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -86,19 +106,37 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="Constants.emtl#/0/constDerivedIncludes"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/14">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
- <body xsi:type="mtl:TemplateInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclarationBody"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </argument>
+ <body xsi:type="mtl:ForBlock">
+ <body xsi:type="mtl:TemplateInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="path" referredVariable="/0/CppClassBody/%.15/path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+ <loopVariable name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </loopVariable>
+ <iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/13/OrderedSet(String)">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/13/Sequence(String)">
+ <source xsi:type="mtl:QueryInvocation" eType="/13/Sequence(String)">
+ <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclarationBody"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/14">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </argument>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/flatten"/>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/asOrderedSet"/>
+ </iterSet>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/openNS"/>
@@ -119,7 +157,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassOperationsImplementation.emtl#/0/CppClassOperationsImplementation"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/19">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/22">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false">
@@ -131,7 +169,7 @@
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/18">
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/21">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateableElement/isTemplate"/>
@@ -165,6 +203,13 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eAnnotations>
+ <eOperations name="+">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="other">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -286,6 +331,18 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
+ <eOperations name="IncludeDirective">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL">
+ <references href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ </eAnnotations>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
<eOperations name="getHeaderSuffix">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
@@ -302,7 +359,7 @@
<eAnnotations source="MTL">
<references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclarationBody"/>
</eAnnotations>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eType xsi:type="ocl.ecore:SequenceType" href="util/clazz/CppClassIncludeClassDeclaration.emtl#/3/Sequence(String)"/>
<eParameters name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
@@ -449,15 +506,29 @@
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
+ <ecore:EPackage name="collections">
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(String)" instanceClassName="java.util.LinkedHashSet">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ </ecore:EPackage>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
+ <ocl.ecore:Variable name="i">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
@@ -482,7 +553,7 @@
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/CppClassBody">
<details key="start" value="740"/>
- <details key="end" value="1525"/>
+ <details key="end" value="1626"/>
<details key="line" value="13"/>
</eAnnotations>
<eAnnotations source="positions.1" references="/0/CppClassBody/%">
@@ -547,205 +618,265 @@
</eAnnotations>
<eAnnotations source="positions.13" references="/0/CppClassBody/%.8">
<details key="start" value="1033"/>
- <details key="end" value="1044"/>
+ <details key="end" value="1034"/>
<details key="line" value="23"/>
</eAnnotations>
<eAnnotations source="positions.14" references="/0/CppClassBody/%.9">
- <details key="start" value="1045"/>
- <details key="end" value="1078"/>
+ <details key="start" value="1035"/>
+ <details key="end" value="1133"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.15" references="/0/CppClassBody/%.9/%">
- <details key="start" value="1045"/>
- <details key="end" value="1064"/>
+ <details key="start" value="1053"/>
+ <details key="end" value="1131"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.16" references="/0/CppClassBody/%.9/%/%">
+ <details key="start" value="1053"/>
+ <details key="end" value="1111"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.17" references="/0/CppClassBody/%.9/%/%/%">
+ <details key="start" value="1053"/>
+ <details key="end" value="1105"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.18" references="/0/CppClassBody/%.9/%/%/%/%">
+ <details key="start" value="1053"/>
+ <details key="end" value="1092"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.19" references="/0/CppClassBody/%.9/%/%/%/%/%">
+ <details key="start" value="1053"/>
+ <details key="end" value="1086"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.16" references="/0/CppClassBody/%.9/%/self">
+ <eAnnotations source="positions.20" references="/0/CppClassBody/%.9/%/%/%/%/%/%">
+ <details key="start" value="1053"/>
+ <details key="end" value="1072"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.21" references="/0/CppClassBody/%.9/%/%/%/%/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.17" references="/0/CppClassBody/%.10">
- <details key="start" value="1080"/>
- <details key="end" value="1081"/>
- <details key="line" value="23"/>
- </eAnnotations>
- <eAnnotations source="positions.18" references="/0/CppClassBody/%.11">
- <details key="start" value="1082"/>
+ <eAnnotations source="positions.22" references="/0/CppClassBody/%.9/%/%/%/%/%.1">
+ <details key="start" value="1089"/>
<details key="end" value="1092"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.19" references="/0/CppClassBody/%.11/class">
- <details key="start" value="1082"/>
- <details key="end" value="1087"/>
+ <eAnnotations source="positions.23" references="/0/CppClassBody/%.9/%/%/%/%.1">
+ <details key="start" value="1095"/>
+ <details key="end" value="1105"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.20" references="/0/CppClassBody/%.12">
- <details key="start" value="1094"/>
- <details key="end" value="1095"/>
- <details key="line" value="23"/>
+ <eAnnotations source="positions.24" references="/0/CppClassBody/%.9/%/%/%/%.1/class">
+ <details key="start" value="1095"/>
+ <details key="end" value="1100"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.21" references="/0/CppClassBody/%.13">
- <details key="start" value="1096"/>
- <details key="end" value="1113"/>
+ <eAnnotations source="positions.25" references="/0/CppClassBody/%.9/%/%/%.1">
+ <details key="start" value="1108"/>
+ <details key="end" value="1111"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.22" references="/0/CppClassBody/%.13/self">
+ <eAnnotations source="positions.26" references="/0/CppClassBody/%.9/%/%.1">
+ <details key="start" value="1114"/>
+ <details key="end" value="1131"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.27" references="/0/CppClassBody/%.9/%/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.23" references="/0/CppClassBody/%.14">
- <details key="start" value="1115"/>
- <details key="end" value="1118"/>
- <details key="line" value="23"/>
+ <eAnnotations source="positions.28" references="/0/CppClassBody/%.10">
+ <details key="start" value="1135"/>
+ <details key="end" value="1137"/>
+ <details key="line" value="24"/>
</eAnnotations>
- <eAnnotations source="positions.24" references="/0/CppClassBody/%.15">
- <details key="start" value="1119"/>
- <details key="end" value="1135"/>
+ <eAnnotations source="positions.29" references="/0/CppClassBody/%.11">
+ <details key="start" value="1138"/>
+ <details key="end" value="1154"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.25" references="/0/CppClassBody/%.15/self">
+ <eAnnotations source="positions.30" references="/0/CppClassBody/%.11/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.26" references="/0/CppClassBody/%.16">
- <details key="start" value="1137"/>
- <details key="end" value="1139"/>
+ <eAnnotations source="positions.31" references="/0/CppClassBody/%.12">
+ <details key="start" value="1156"/>
+ <details key="end" value="1158"/>
<details key="line" value="26"/>
</eAnnotations>
- <eAnnotations source="positions.27" references="/0/CppClassBody/%.17">
- <details key="start" value="1140"/>
- <details key="end" value="1162"/>
+ <eAnnotations source="positions.32" references="/0/CppClassBody/%.13">
+ <details key="start" value="1159"/>
+ <details key="end" value="1181"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.28" references="/0/CppClassBody/%.17/self">
+ <eAnnotations source="positions.33" references="/0/CppClassBody/%.13/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.29" references="/0/CppClassBody/%.18">
- <details key="start" value="1164"/>
- <details key="end" value="1165"/>
+ <eAnnotations source="positions.34" references="/0/CppClassBody/%.14">
+ <details key="start" value="1183"/>
+ <details key="end" value="1184"/>
<details key="line" value="28"/>
</eAnnotations>
- <eAnnotations source="positions.30" references="/0/CppClassBody/%.19">
- <details key="start" value="1166"/>
- <details key="end" value="1202"/>
+ <eAnnotations source="positions.35" references="/0/CppClassBody/%.15">
+ <details key="start" value="1184"/>
+ <details key="end" value="1305"/>
+ <details key="line" value="28"/>
+ </eAnnotations>
+ <eAnnotations source="positions.36" references="/0/CppClassBody/%.15/%">
+ <details key="start" value="1273"/>
+ <details key="end" value="1296"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.37" references="/0/CppClassBody/%.15/%/path">
+ <details key="start" value="1273"/>
+ <details key="end" value="1277"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.38" references="/0/CppClassBody/%.15/%.1">
+ <details key="start" value="1298"/>
+ <details key="end" value="1299"/>
+ <details key="line" value="30"/>
+ </eAnnotations>
+ <eAnnotations source="positions.39" references="/0/CppClassBody/%.15/path">
+ <details key="start" value="1190"/>
+ <details key="end" value="1203"/>
+ <details key="line" value="28"/>
+ </eAnnotations>
+ <eAnnotations source="positions.40" references="/0/CppClassBody/%.15/%.2">
+ <details key="start" value="1206"/>
+ <details key="end" value="1269"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.41" references="/0/CppClassBody/%.15/%.2/%">
+ <details key="start" value="1206"/>
+ <details key="end" value="1253"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.42" references="/0/CppClassBody/%.15/%.2/%/%">
+ <details key="start" value="1206"/>
+ <details key="end" value="1242"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.31" references="/0/CppClassBody/%.19/self">
+ <eAnnotations source="positions.43" references="/0/CppClassBody/%.15/%.2/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.32" references="/0/CppClassBody/%.20">
- <details key="start" value="1204"/>
- <details key="end" value="1206"/>
- <details key="line" value="29"/>
+ <eAnnotations source="positions.44" references="/0/CppClassBody/%.16">
+ <details key="start" value="1306"/>
+ <details key="end" value="1307"/>
+ <details key="line" value="31"/>
</eAnnotations>
- <eAnnotations source="positions.33" references="/0/CppClassBody/%.21">
- <details key="start" value="1207"/>
- <details key="end" value="1220"/>
+ <eAnnotations source="positions.45" references="/0/CppClassBody/%.17">
+ <details key="start" value="1308"/>
+ <details key="end" value="1321"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.34" references="/0/CppClassBody/%.21/class">
- <details key="start" value="1214"/>
- <details key="end" value="1219"/>
+ <eAnnotations source="positions.46" references="/0/CppClassBody/%.17/class">
+ <details key="start" value="1315"/>
+ <details key="end" value="1320"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.35" references="/0/CppClassBody/%.22">
- <details key="start" value="1222"/>
- <details key="end" value="1223"/>
- <details key="line" value="31"/>
+ <eAnnotations source="positions.47" references="/0/CppClassBody/%.18">
+ <details key="start" value="1323"/>
+ <details key="end" value="1324"/>
+ <details key="line" value="33"/>
</eAnnotations>
- <eAnnotations source="positions.36" references="/0/CppClassBody/%.23">
- <details key="start" value="1224"/>
- <details key="end" value="1250"/>
+ <eAnnotations source="positions.48" references="/0/CppClassBody/%.19">
+ <details key="start" value="1325"/>
+ <details key="end" value="1351"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.37" references="/0/CppClassBody/%.23/class">
- <details key="start" value="1244"/>
- <details key="end" value="1249"/>
+ <eAnnotations source="positions.49" references="/0/CppClassBody/%.19/class">
+ <details key="start" value="1345"/>
+ <details key="end" value="1350"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.38" references="/0/CppClassBody/%.24">
- <details key="start" value="1252"/>
- <details key="end" value="1253"/>
- <details key="line" value="32"/>
+ <eAnnotations source="positions.50" references="/0/CppClassBody/%.20">
+ <details key="start" value="1353"/>
+ <details key="end" value="1354"/>
+ <details key="line" value="34"/>
</eAnnotations>
- <eAnnotations source="positions.39" references="/0/CppClassBody/%.25">
- <details key="start" value="1253"/>
- <details key="end" value="1323"/>
- <details key="line" value="32"/>
+ <eAnnotations source="positions.51" references="/0/CppClassBody/%.21">
+ <details key="start" value="1354"/>
+ <details key="end" value="1424"/>
+ <details key="line" value="34"/>
</eAnnotations>
- <eAnnotations source="positions.40" references="/0/CppClassBody/%.25/%">
- <details key="start" value="1276"/>
- <details key="end" value="1315"/>
+ <eAnnotations source="positions.52" references="/0/CppClassBody/%.21/%">
+ <details key="start" value="1377"/>
+ <details key="end" value="1416"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.41" references="/0/CppClassBody/%.25/%/self">
+ <eAnnotations source="positions.53" references="/0/CppClassBody/%.21/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.42" references="/0/CppClassBody/%.25/%/%">
- <details key="start" value="1309"/>
- <details key="end" value="1314"/>
+ <eAnnotations source="positions.54" references="/0/CppClassBody/%.21/%/%">
+ <details key="start" value="1410"/>
+ <details key="end" value="1415"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.43" references="/0/CppClassBody/%.25/%.1">
- <details key="start" value="1317"/>
- <details key="end" value="1318"/>
- <details key="line" value="34"/>
+ <eAnnotations source="positions.55" references="/0/CppClassBody/%.21/%.1">
+ <details key="start" value="1418"/>
+ <details key="end" value="1419"/>
+ <details key="line" value="36"/>
</eAnnotations>
- <eAnnotations source="positions.44" references="/0/CppClassBody/%.25/%.2">
- <details key="start" value="1257"/>
- <details key="end" value="1273"/>
+ <eAnnotations source="positions.56" references="/0/CppClassBody/%.21/%.2">
+ <details key="start" value="1358"/>
+ <details key="end" value="1374"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.45" references="/0/CppClassBody/%.25/%.2/%">
- <details key="start" value="1261"/>
- <details key="end" value="1273"/>
+ <eAnnotations source="positions.57" references="/0/CppClassBody/%.21/%.2/%">
+ <details key="start" value="1362"/>
+ <details key="end" value="1374"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.46" references="/0/CppClassBody/%.25/%.2/%/self">
+ <eAnnotations source="positions.58" references="/0/CppClassBody/%.21/%.2/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.47" references="/0/CppClassBody/%.26">
- <details key="start" value="1325"/>
- <details key="end" value="1339"/>
+ <eAnnotations source="positions.59" references="/0/CppClassBody/%.22">
+ <details key="start" value="1426"/>
+ <details key="end" value="1440"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.48" references="/0/CppClassBody/%.26/class">
- <details key="start" value="1333"/>
- <details key="end" value="1338"/>
+ <eAnnotations source="positions.60" references="/0/CppClassBody/%.22/class">
+ <details key="start" value="1434"/>
+ <details key="end" value="1439"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.49" references="/0/CppClassBody/%.27">
- <details key="start" value="1341"/>
- <details key="end" value="1426"/>
- <details key="line" value="36"/>
+ <eAnnotations source="positions.61" references="/0/CppClassBody/%.23">
+ <details key="start" value="1442"/>
+ <details key="end" value="1527"/>
+ <details key="line" value="38"/>
</eAnnotations>
- <eAnnotations source="positions.50" references="/0/CppClassBody/%.28">
- <details key="start" value="1427"/>
- <details key="end" value="1437"/>
+ <eAnnotations source="positions.62" references="/0/CppClassBody/%.24">
+ <details key="start" value="1528"/>
+ <details key="end" value="1538"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.51" references="/0/CppClassBody/%.28/class">
- <details key="start" value="1427"/>
- <details key="end" value="1432"/>
+ <eAnnotations source="positions.63" references="/0/CppClassBody/%.24/class">
+ <details key="start" value="1528"/>
+ <details key="end" value="1533"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.52" references="/0/CppClassBody/%.29">
- <details key="start" value="1439"/>
- <details key="end" value="1513"/>
- <details key="line" value="38"/>
+ <eAnnotations source="positions.64" references="/0/CppClassBody/%.25">
+ <details key="start" value="1540"/>
+ <details key="end" value="1614"/>
+ <details key="line" value="40"/>
</eAnnotations>
- <eAnnotations source="positions.53" references="/0/CppClassBody/class">
+ <eAnnotations source="positions.65" references="/0/CppClassBody/class">
<details key="start" value="770"/>
<details key="end" value="788"/>
<details key="line" value="13"/>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.mtl
index 75ad78c..f3ab44b 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassBody.mtl
@@ -20,12 +20,14 @@
[CppIncludePreBody()/]
[constIncludeHFile()/]
-#include <[getNearestPackage().getFullPath()/]/[class.name/].[getHeaderSuffix()/]>
+[IncludeDirective( getNearestPackage().getFullPath() + '/' + class.name + '.' + getHeaderSuffix() )/]
[CppIncludeBody()/]
[constDerivedIncludes()/]
-[CppClassAllIncludesDeclarationBody()/]
+[for (path : String | CppClassAllIncludesDeclarationBody()->flatten()->asOrderedSet())]
+[path.IncludeDirective()/]
+[/for]
[openNS(class)/]
[CppStaticAttributes(class)/]
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.emtl
index 5e5fa6f..2fbf48e 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.emtl
@@ -116,7 +116,7 @@
<loopVariable name="a">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
</loopVariable>
- <iterSet xsi:type="ocl.ecore:VariableExp" name="attributeList" eType="/16/Set(Property)" referredVariable="/0/defaultInitializer/%/%/attributeList"/>
+ <iterSet xsi:type="ocl.ecore:VariableExp" name="attributeList" eType="/16/OrderedSet(Property)" referredVariable="/0/defaultInitializer/%/%/attributeList"/>
<each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", ">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</each>
@@ -126,13 +126,13 @@
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:VariableExp" name="attributeList" eType="/16/Set(Property)" referredVariable="/0/defaultInitializer/%/%/attributeList"/>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="attributeList" eType="/16/OrderedSet(Property)" referredVariable="/0/defaultInitializer/%/%/attributeList"/>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/isEmpty"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>
</ifExpr>
</body>
- <letVariable name="attributeList" eType="/16/Set(Property)">
+ <letVariable name="attributeList" eType="/16/OrderedSet(Property)">
<initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/16/OrderedSet(Property)">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/16/OrderedSet(Property)">
<source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/18">
@@ -266,30 +266,54 @@
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" class header&#xA; ************************************************************/&#xA;&#xA;"/>
- <body xsi:type="mtl:TemplateInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppOwnerPackageIncludeDeclaration"/>
- <argument xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ <body xsi:type="mtl:ForBlock">
+ <body xsi:type="mtl:TemplateInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="path" referredVariable="/0/CppClassHeader/%.7/path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
+ <loopVariable name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </loopVariable>
+ <iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/16/OrderedSet(String)">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/16/Sequence(String)">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/16/Sequence(String)" referredOperation="/1/Collection(T)_Class/addAll">
+ <source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/16/Sequence(String)" kind="Sequence">
+ <part xsi:type="ocl.ecore:CollectionItem">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <item xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/cppOwnerPackageIncludePath"/>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
+ </argument>
+ </item>
+ </part>
+ </source>
+ <argument xsi:type="mtl:QueryInvocation" eType="/16/Sequence(String)">
+ <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludes"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </argument>
+ </argument>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/flatten"/>
</source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Type/package"/>
- </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/asOrderedSet"/>
+ </iterSet>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
- <body xsi:type="mtl:TemplateInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/36">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="CppIncludeUtils.emtl#/0/CppIncludeHeader"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/37">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/40">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -297,7 +321,7 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/openNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/38">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/41">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -305,7 +329,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/CppDocumentation.emtl#/0/CppElementDoc"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/39">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/42">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -313,13 +337,13 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/CppTemplates.emtl#/0/templateSignature"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/40">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/43">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
<body xsi:type="mtl:TemplateInvocation" definition="/0/classUnionOrStruct">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/41">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/44">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -334,7 +358,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassInheritedDeclarations.emtl#/0/CppClassInheritedDeclarations"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/43">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/46">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -342,14 +366,14 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassFriendDeclaration.emtl#/0/CppClassIncludeFriendDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/44">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/47">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassTypeAndEnum.emtl#/0/CppClassTypeAndEnum"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/45">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/48">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -363,7 +387,7 @@
</argument>
<argument xsi:type="mtl:TemplateInvocation" definition="/0/defaultInitializer">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/46">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/49">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</argument>
@@ -379,7 +403,7 @@
<argument xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassAttributesDeclaration.emtl#/0/CppClassAttributesDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/47">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/50">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -399,7 +423,7 @@
<argument xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassOperationsDeclaration.emtl#/0/CppClassOperationsDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/48">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/51">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -419,7 +443,7 @@
<argument xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassAttributesDeclaration.emtl#/0/CppClassAttributesDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/49">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/52">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -439,7 +463,7 @@
<argument xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassOperationsDeclaration.emtl#/0/CppClassOperationsDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/50">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/53">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -459,7 +483,7 @@
<argument xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassAttributesDeclaration.emtl#/0/CppClassAttributesDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/51">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/54">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -479,7 +503,7 @@
<argument xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassOperationsDeclaration.emtl#/0/CppClassOperationsDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/52">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/55">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -492,7 +516,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassAttributesDeclaration.emtl#/0/CppClassAttributesDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/53">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/56">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -504,7 +528,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassOperationsDeclaration.emtl#/0/CppClassOperationsDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/54">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/57">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:EnumLiteralExp">
@@ -518,7 +542,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassOperationsImplementation.emtl#/0/CppClassOperationsImplementation"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/56">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/59">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false">
@@ -529,7 +553,7 @@
<ifExpr xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="util/CppTemplates.emtl#/0/isTemplate"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/55">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/58">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</ifExpr>
@@ -538,7 +562,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassOperationsImplementation.emtl#/0/CppClassOperationsImplementation"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/57">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/60">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true">
@@ -549,7 +573,7 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/closeNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/58">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/61">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</body>
@@ -711,26 +735,38 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
- <eOperations name="CppOwnerPackageIncludeDeclaration">
+ <eOperations name="IncludeDirective">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
- <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppOwnerPackageIncludeDeclaration"/>
+ <references href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ </eAnnotations>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
+ <eOperations name="cppOwnerPackageIncludePath">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL">
+ <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/cppOwnerPackageIncludePath"/>
</eAnnotations>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="pkg">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</eParameters>
</eOperations>
- <eOperations name="CppClassAllIncludesDeclaration">
+ <eOperations name="CppClassAllIncludes">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
- <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclaration"/>
+ <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludes"/>
</eAnnotations>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eType xsi:type="ocl.ecore:SequenceType" href="util/clazz/CppClassIncludeClassDeclaration.emtl#/3/Sequence(String)"/>
<eParameters name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
@@ -874,6 +910,13 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
</eAnnotations>
+ <eOperations name="addAll">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+ <eParameters name="otherCollection">
+ <eType xsi:type="ocl.ecore:CollectionType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Collection(T)"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Sequence(T)_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -1021,6 +1064,15 @@
<eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Property)" instanceClassName="java.util.Set">
<elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
</eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:CollectionType" name="Collection(String)">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:OrderedSetType" name="OrderedSet(String)" instanceClassName="java.util.LinkedHashSet">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
</ecore:EPackage>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
@@ -1080,8 +1132,17 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
+ <ocl.ecore:Variable name="i">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
@@ -1267,52 +1328,52 @@
</eAnnotations>
<eAnnotations source="positions.22" references="/0/defaultInitializer">
<details key="start" value="1847"/>
- <details key="end" value="3390"/>
+ <details key="end" value="3397"/>
<details key="line" value="35"/>
</eAnnotations>
<eAnnotations source="positions.23" references="/0/defaultInitializer/%">
<details key="start" value="2948"/>
- <details key="end" value="3378"/>
+ <details key="end" value="3385"/>
<details key="line" value="54"/>
</eAnnotations>
<eAnnotations source="positions.24" references="/0/defaultInitializer/%/%">
<details key="start" value="3023"/>
- <details key="end" value="3372"/>
+ <details key="end" value="3379"/>
<details key="line" value="55"/>
</eAnnotations>
<eAnnotations source="positions.25" references="/0/defaultInitializer/%/%/%">
- <details key="start" value="3188"/>
- <details key="end" value="3366"/>
+ <details key="start" value="3195"/>
+ <details key="end" value="3373"/>
<details key="line" value="59"/>
</eAnnotations>
<eAnnotations source="positions.26" references="/0/defaultInitializer/%/%/%/%">
- <details key="start" value="3222"/>
- <details key="end" value="3227"/>
+ <details key="start" value="3229"/>
+ <details key="end" value="3234"/>
<details key="line" value="60"/>
</eAnnotations>
<eAnnotations source="positions.27" references="/0/defaultInitializer/%/%/%/%.1">
- <details key="start" value="3228"/>
- <details key="end" value="3243"/>
+ <details key="start" value="3235"/>
+ <details key="end" value="3250"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.28" references="/0/defaultInitializer/%/%/%/%.1/classifier">
- <details key="start" value="3228"/>
- <details key="end" value="3238"/>
+ <details key="start" value="3235"/>
+ <details key="end" value="3245"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.29" references="/0/defaultInitializer/%/%/%/%.2">
- <details key="start" value="3245"/>
- <details key="end" value="3250"/>
+ <details key="start" value="3252"/>
+ <details key="end" value="3257"/>
<details key="line" value="60"/>
</eAnnotations>
<eAnnotations source="positions.30" references="/0/defaultInitializer/%/%/%/%.3">
- <details key="start" value="3250"/>
- <details key="end" value="3353"/>
+ <details key="start" value="3257"/>
+ <details key="end" value="3360"/>
<details key="line" value="60"/>
</eAnnotations>
<eAnnotations source="positions.31" references="/0/defaultInitializer/%/%/%/%.3/%">
- <details key="start" value="3310"/>
- <details key="end" value="3314"/>
+ <details key="start" value="3317"/>
+ <details key="end" value="3321"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.32" references="/0/defaultInitializer/%/%/%/%.3/%/self">
@@ -1321,18 +1382,18 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.33" references="/0/defaultInitializer/%/%/%/%.3/%.1">
- <details key="start" value="3316"/>
- <details key="end" value="3317"/>
+ <details key="start" value="3323"/>
+ <details key="end" value="3324"/>
<details key="line" value="61"/>
</eAnnotations>
<eAnnotations source="positions.34" references="/0/defaultInitializer/%/%/%/%.3/%.2">
- <details key="start" value="3318"/>
- <details key="end" value="3344"/>
+ <details key="start" value="3325"/>
+ <details key="end" value="3351"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.35" references="/0/defaultInitializer/%/%/%/%.3/%.2/%">
- <details key="start" value="3318"/>
- <details key="end" value="3330"/>
+ <details key="start" value="3325"/>
+ <details key="end" value="3337"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.36" references="/0/defaultInitializer/%/%/%/%.3/%.2/%/self">
@@ -1341,58 +1402,58 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.37" references="/0/defaultInitializer/%/%/%/%.3/%.3">
- <details key="start" value="3346"/>
- <details key="end" value="3347"/>
+ <details key="start" value="3353"/>
+ <details key="end" value="3354"/>
<details key="line" value="61"/>
</eAnnotations>
<eAnnotations source="positions.38" references="/0/defaultInitializer/%/%/%/%.3/a">
- <details key="start" value="3256"/>
- <details key="end" value="3268"/>
+ <details key="start" value="3263"/>
+ <details key="end" value="3275"/>
<details key="line" value="60"/>
</eAnnotations>
<eAnnotations source="positions.39" references="/0/defaultInitializer/%/%/%/%.3/attributeList">
- <details key="start" value="3271"/>
- <details key="end" value="3284"/>
+ <details key="start" value="3278"/>
+ <details key="end" value="3291"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.40" references="/0/defaultInitializer/%/%/%/%.3/%.4">
- <details key="start" value="3296"/>
- <details key="end" value="3300"/>
+ <details key="start" value="3303"/>
+ <details key="end" value="3307"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.41" references="/0/defaultInitializer/%/%/%/%.4">
- <details key="start" value="3353"/>
- <details key="end" value="3357"/>
+ <details key="start" value="3360"/>
+ <details key="end" value="3364"/>
<details key="line" value="61"/>
</eAnnotations>
<eAnnotations source="positions.42" references="/0/defaultInitializer/%/%/%/%.5">
- <details key="start" value="3192"/>
- <details key="end" value="3220"/>
+ <details key="start" value="3199"/>
+ <details key="end" value="3227"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.43" references="/0/defaultInitializer/%/%/%/%.5/%">
- <details key="start" value="3196"/>
- <details key="end" value="3220"/>
+ <details key="start" value="3203"/>
+ <details key="end" value="3227"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.44" references="/0/defaultInitializer/%/%/%/%.5/%/attributeList">
- <details key="start" value="3196"/>
- <details key="end" value="3209"/>
+ <details key="start" value="3203"/>
+ <details key="end" value="3216"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.45" references="/0/defaultInitializer/%/%/attributeList">
<details key="start" value="3028"/>
- <details key="end" value="3182"/>
+ <details key="end" value="3189"/>
<details key="line" value="55"/>
</eAnnotations>
<eAnnotations source="positions.46" references="/0/defaultInitializer/%/%/attributeList/select">
- <details key="start" value="3061"/>
- <details key="end" value="3183"/>
+ <details key="start" value="3068"/>
+ <details key="end" value="3190"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.47" references="/0/defaultInitializer/%/%/attributeList/select/%">
- <details key="start" value="3061"/>
- <details key="end" value="3070"/>
+ <details key="start" value="3068"/>
+ <details key="end" value="3077"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.48" references="/0/defaultInitializer/%/%/attributeList/select/%/self">
@@ -1401,23 +1462,23 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.49" references="/0/defaultInitializer/%/%/attributeList/select/%.1">
- <details key="start" value="3086"/>
- <details key="end" value="3182"/>
+ <details key="start" value="3093"/>
+ <details key="end" value="3189"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.50" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%">
- <details key="start" value="3086"/>
- <details key="end" value="3136"/>
+ <details key="start" value="3093"/>
+ <details key="end" value="3143"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.51" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%">
- <details key="start" value="3086"/>
- <details key="end" value="3104"/>
+ <details key="start" value="3093"/>
+ <details key="end" value="3111"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.52" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%/%">
- <details key="start" value="3087"/>
- <details key="end" value="3095"/>
+ <details key="start" value="3094"/>
+ <details key="end" value="3102"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.53" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%/%/temp1">
@@ -1426,18 +1487,18 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.54" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%/%.1">
- <details key="start" value="3098"/>
- <details key="end" value="3103"/>
+ <details key="start" value="3105"/>
+ <details key="end" value="3110"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.55" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%.1">
- <details key="start" value="3114"/>
- <details key="end" value="3136"/>
+ <details key="start" value="3121"/>
+ <details key="end" value="3143"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.56" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%.1/%">
- <details key="start" value="3115"/>
- <details key="end" value="3127"/>
+ <details key="start" value="3122"/>
+ <details key="end" value="3134"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.57" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%.1/%/temp1">
@@ -1446,23 +1507,23 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.58" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%/%.1/%.1">
- <details key="start" value="3131"/>
- <details key="end" value="3135"/>
+ <details key="start" value="3138"/>
+ <details key="end" value="3142"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.59" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%.1">
- <details key="start" value="3146"/>
- <details key="end" value="3182"/>
+ <details key="start" value="3153"/>
+ <details key="end" value="3189"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.60" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%.1/%">
- <details key="start" value="3147"/>
- <details key="end" value="3173"/>
+ <details key="start" value="3154"/>
+ <details key="end" value="3180"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.61" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%.1/%/%">
- <details key="start" value="3147"/>
- <details key="end" value="3159"/>
+ <details key="start" value="3154"/>
+ <details key="end" value="3166"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.62" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%.1/%/%/temp1">
@@ -1471,8 +1532,8 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.63" references="/0/defaultInitializer/%/%/attributeList/select/%.1/%.1/%.1">
- <details key="start" value="3177"/>
- <details key="end" value="3181"/>
+ <details key="start" value="3184"/>
+ <details key="end" value="3188"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.64" references="/0/defaultInitializer/%/%/attributeList/select/temp1">
@@ -1541,18 +1602,18 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.77" references="/0/CppClassHeader">
- <details key="start" value="3393"/>
- <details key="end" value="5508"/>
+ <details key="start" value="3400"/>
+ <details key="end" value="5608"/>
<details key="line" value="67"/>
</eAnnotations>
<eAnnotations source="positions.78" references="/0/CppClassHeader/%">
- <details key="start" value="3446"/>
- <details key="end" value="3454"/>
+ <details key="start" value="3453"/>
+ <details key="end" value="3461"/>
<details key="line" value="68"/>
</eAnnotations>
<eAnnotations source="positions.79" references="/0/CppClassHeader/%.1">
- <details key="start" value="3455"/>
- <details key="end" value="3470"/>
+ <details key="start" value="3462"/>
+ <details key="end" value="3477"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.80" references="/0/CppClassHeader/%.1/self">
@@ -1561,13 +1622,13 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.81" references="/0/CppClassHeader/%.2">
- <details key="start" value="3472"/>
- <details key="end" value="3483"/>
+ <details key="start" value="3479"/>
+ <details key="end" value="3490"/>
<details key="line" value="68"/>
</eAnnotations>
<eAnnotations source="positions.82" references="/0/CppClassHeader/%.3">
- <details key="start" value="3484"/>
- <details key="end" value="3499"/>
+ <details key="start" value="3491"/>
+ <details key="end" value="3506"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.83" references="/0/CppClassHeader/%.3/self">
@@ -1576,523 +1637,563 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.84" references="/0/CppClassHeader/%.4">
- <details key="start" value="3501"/>
- <details key="end" value="3581"/>
+ <details key="start" value="3508"/>
+ <details key="end" value="3588"/>
<details key="line" value="69"/>
</eAnnotations>
<eAnnotations source="positions.85" references="/0/CppClassHeader/%.5">
- <details key="start" value="3582"/>
- <details key="end" value="3592"/>
+ <details key="start" value="3589"/>
+ <details key="end" value="3599"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.86" references="/0/CppClassHeader/%.5/class">
- <details key="start" value="3582"/>
- <details key="end" value="3587"/>
+ <details key="start" value="3589"/>
+ <details key="end" value="3594"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.87" references="/0/CppClassHeader/%.6">
- <details key="start" value="3594"/>
- <details key="end" value="3672"/>
+ <details key="start" value="3601"/>
+ <details key="end" value="3679"/>
<details key="line" value="72"/>
</eAnnotations>
<eAnnotations source="positions.88" references="/0/CppClassHeader/%.7">
- <details key="start" value="3673"/>
- <details key="end" value="3717"/>
- <details key="line" value="0"/>
+ <details key="start" value="3679"/>
+ <details key="end" value="3856"/>
+ <details key="line" value="75"/>
</eAnnotations>
<eAnnotations source="positions.89" references="/0/CppClassHeader/%.7/%">
- <details key="start" value="3673"/>
- <details key="end" value="3681"/>
+ <details key="start" value="3824"/>
+ <details key="end" value="3847"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.90" references="/0/CppClassHeader/%.7/%/self">
+ <eAnnotations source="positions.90" references="/0/CppClassHeader/%.7/%/path">
+ <details key="start" value="3824"/>
+ <details key="end" value="3828"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.91" references="/0/CppClassHeader/%.7/%.1">
+ <details key="start" value="3849"/>
+ <details key="end" value="3850"/>
+ <details key="line" value="81"/>
+ </eAnnotations>
+ <eAnnotations source="positions.92" references="/0/CppClassHeader/%.7/path">
+ <details key="start" value="3685"/>
+ <details key="end" value="3698"/>
+ <details key="line" value="75"/>
+ </eAnnotations>
+ <eAnnotations source="positions.93" references="/0/CppClassHeader/%.7/%.2">
+ <details key="start" value="3702"/>
+ <details key="end" value="3820"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.94" references="/0/CppClassHeader/%.7/%.2/%">
+ <details key="start" value="3702"/>
+ <details key="end" value="3801"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.95" references="/0/CppClassHeader/%.7/%.2/%/%">
+ <details key="start" value="3702"/>
+ <details key="end" value="3787"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.96" references="/0/CppClassHeader/%.7/%.2/%/%/%">
+ <details key="start" value="3702"/>
+ <details key="end" value="3751"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.97" references="/0/CppClassHeader/%.7/%.2/%/%/%/%/%">
+ <details key="start" value="3712"/>
+ <details key="end" value="3749"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.98" references="/0/CppClassHeader/%.7/%.2/%/%/%/%/%/%">
+ <details key="start" value="3712"/>
+ <details key="end" value="3720"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.99" references="/0/CppClassHeader/%.7/%.2/%/%/%/%/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.91" references="/0/CppClassHeader/%.8">
- <details key="start" value="3719"/>
- <details key="end" value="3721"/>
- <details key="line" value="76"/>
- </eAnnotations>
- <eAnnotations source="positions.92" references="/0/CppClassHeader/%.9">
- <details key="start" value="3722"/>
- <details key="end" value="3754"/>
+ <eAnnotations source="positions.100" references="/0/CppClassHeader/%.7/%.2/%/%/%.1">
+ <details key="start" value="3764"/>
+ <details key="end" value="3785"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.93" references="/0/CppClassHeader/%.9/self">
+ <eAnnotations source="positions.101" references="/0/CppClassHeader/%.7/%.2/%/%/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.94" references="/0/CppClassHeader/%.10">
- <details key="start" value="3756"/>
- <details key="end" value="3758"/>
- <details key="line" value="78"/>
+ <eAnnotations source="positions.102" references="/0/CppClassHeader/%.8">
+ <details key="start" value="3857"/>
+ <details key="end" value="3858"/>
+ <details key="line" value="82"/>
</eAnnotations>
- <eAnnotations source="positions.95" references="/0/CppClassHeader/%.11">
- <details key="start" value="3759"/>
- <details key="end" value="3777"/>
+ <eAnnotations source="positions.103" references="/0/CppClassHeader/%.9">
+ <details key="start" value="3859"/>
+ <details key="end" value="3877"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.96" references="/0/CppClassHeader/%.11/self">
+ <eAnnotations source="positions.104" references="/0/CppClassHeader/%.9/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.97" references="/0/CppClassHeader/%.12">
- <details key="start" value="3779"/>
- <details key="end" value="3781"/>
- <details key="line" value="80"/>
+ <eAnnotations source="positions.105" references="/0/CppClassHeader/%.10">
+ <details key="start" value="3879"/>
+ <details key="end" value="3881"/>
+ <details key="line" value="84"/>
</eAnnotations>
- <eAnnotations source="positions.98" references="/0/CppClassHeader/%.13">
- <details key="start" value="3782"/>
- <details key="end" value="3790"/>
+ <eAnnotations source="positions.106" references="/0/CppClassHeader/%.11">
+ <details key="start" value="3882"/>
+ <details key="end" value="3890"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.99" references="/0/CppClassHeader/%.13/self">
+ <eAnnotations source="positions.107" references="/0/CppClassHeader/%.11/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.100" references="/0/CppClassHeader/%.14">
- <details key="start" value="3792"/>
- <details key="end" value="3858"/>
- <details key="line" value="81"/>
+ <eAnnotations source="positions.108" references="/0/CppClassHeader/%.12">
+ <details key="start" value="3892"/>
+ <details key="end" value="3958"/>
+ <details key="line" value="85"/>
</eAnnotations>
- <eAnnotations source="positions.101" references="/0/CppClassHeader/%.15">
- <details key="start" value="3859"/>
- <details key="end" value="3874"/>
+ <eAnnotations source="positions.109" references="/0/CppClassHeader/%.13">
+ <details key="start" value="3959"/>
+ <details key="end" value="3974"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.102" references="/0/CppClassHeader/%.15/self">
+ <eAnnotations source="positions.110" references="/0/CppClassHeader/%.13/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.103" references="/0/CppClassHeader/%.16">
- <details key="start" value="3876"/>
- <details key="end" value="3877"/>
- <details key="line" value="85"/>
+ <eAnnotations source="positions.111" references="/0/CppClassHeader/%.14">
+ <details key="start" value="3976"/>
+ <details key="end" value="3977"/>
+ <details key="line" value="89"/>
</eAnnotations>
- <eAnnotations source="positions.104" references="/0/CppClassHeader/%.17">
- <details key="start" value="3878"/>
- <details key="end" value="3897"/>
+ <eAnnotations source="positions.112" references="/0/CppClassHeader/%.15">
+ <details key="start" value="3978"/>
+ <details key="end" value="3997"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.105" references="/0/CppClassHeader/%.17/self">
+ <eAnnotations source="positions.113" references="/0/CppClassHeader/%.15/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.106" references="/0/CppClassHeader/%.18">
- <details key="start" value="3900"/>
- <details key="end" value="3920"/>
+ <eAnnotations source="positions.114" references="/0/CppClassHeader/%.16">
+ <details key="start" value="4000"/>
+ <details key="end" value="4020"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.107" references="/0/CppClassHeader/%.18/self">
+ <eAnnotations source="positions.115" references="/0/CppClassHeader/%.16/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.108" references="/0/CppClassHeader/%.19">
- <details key="start" value="3922"/>
- <details key="end" value="3923"/>
- <details key="line" value="85"/>
+ <eAnnotations source="positions.116" references="/0/CppClassHeader/%.17">
+ <details key="start" value="4022"/>
+ <details key="end" value="4023"/>
+ <details key="line" value="89"/>
</eAnnotations>
- <eAnnotations source="positions.109" references="/0/CppClassHeader/%.20">
- <details key="start" value="3924"/>
- <details key="end" value="3934"/>
+ <eAnnotations source="positions.117" references="/0/CppClassHeader/%.18">
+ <details key="start" value="4024"/>
+ <details key="end" value="4034"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.110" references="/0/CppClassHeader/%.20/class">
- <details key="start" value="3924"/>
- <details key="end" value="3929"/>
+ <eAnnotations source="positions.118" references="/0/CppClassHeader/%.18/class">
+ <details key="start" value="4024"/>
+ <details key="end" value="4029"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.111" references="/0/CppClassHeader/%.21">
- <details key="start" value="3937"/>
- <details key="end" value="3968"/>
+ <eAnnotations source="positions.119" references="/0/CppClassHeader/%.19">
+ <details key="start" value="4037"/>
+ <details key="end" value="4068"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.112" references="/0/CppClassHeader/%.21/self">
+ <eAnnotations source="positions.120" references="/0/CppClassHeader/%.19/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.113" references="/0/CppClassHeader/%.22">
- <details key="start" value="3970"/>
- <details key="end" value="3973"/>
- <details key="line" value="85"/>
+ <eAnnotations source="positions.121" references="/0/CppClassHeader/%.20">
+ <details key="start" value="4070"/>
+ <details key="end" value="4073"/>
+ <details key="line" value="89"/>
</eAnnotations>
- <eAnnotations source="positions.114" references="/0/CppClassHeader/%.23">
- <details key="start" value="3974"/>
- <details key="end" value="4008"/>
+ <eAnnotations source="positions.122" references="/0/CppClassHeader/%.21">
+ <details key="start" value="4074"/>
+ <details key="end" value="4108"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.115" references="/0/CppClassHeader/%.23/self">
+ <eAnnotations source="positions.123" references="/0/CppClassHeader/%.21/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.116" references="/0/CppClassHeader/%.24">
- <details key="start" value="4011"/>
- <details key="end" value="4032"/>
+ <eAnnotations source="positions.124" references="/0/CppClassHeader/%.22">
+ <details key="start" value="4111"/>
+ <details key="end" value="4132"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.117" references="/0/CppClassHeader/%.24/self">
+ <eAnnotations source="positions.125" references="/0/CppClassHeader/%.22/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.118" references="/0/CppClassHeader/%.25">
- <details key="start" value="4034"/>
- <details key="end" value="4039"/>
- <details key="line" value="87"/>
+ <eAnnotations source="positions.126" references="/0/CppClassHeader/%.23">
+ <details key="start" value="4134"/>
+ <details key="end" value="4139"/>
+ <details key="line" value="91"/>
</eAnnotations>
- <eAnnotations source="positions.119" references="/0/CppClassHeader/%.26">
- <details key="start" value="4040"/>
- <details key="end" value="4095"/>
+ <eAnnotations source="positions.127" references="/0/CppClassHeader/%.24">
+ <details key="start" value="4140"/>
+ <details key="end" value="4195"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.120" references="/0/CppClassHeader/%.26/%">
- <details key="start" value="4040"/>
- <details key="end" value="4062"/>
+ <eAnnotations source="positions.128" references="/0/CppClassHeader/%.24/%">
+ <details key="start" value="4140"/>
+ <details key="end" value="4162"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.121" references="/0/CppClassHeader/%.26/%.1">
- <details key="start" value="4074"/>
- <details key="end" value="4094"/>
+ <eAnnotations source="positions.129" references="/0/CppClassHeader/%.24/%.1">
+ <details key="start" value="4174"/>
+ <details key="end" value="4194"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.122" references="/0/CppClassHeader/%.26/%.1/self">
+ <eAnnotations source="positions.130" references="/0/CppClassHeader/%.24/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.123" references="/0/CppClassHeader/%.27">
- <details key="start" value="4097"/>
- <details key="end" value="4102"/>
- <details key="line" value="88"/>
+ <eAnnotations source="positions.131" references="/0/CppClassHeader/%.25">
+ <details key="start" value="4197"/>
+ <details key="end" value="4202"/>
+ <details key="line" value="92"/>
</eAnnotations>
- <eAnnotations source="positions.124" references="/0/CppClassHeader/%.28">
- <details key="start" value="4103"/>
- <details key="end" value="4191"/>
+ <eAnnotations source="positions.132" references="/0/CppClassHeader/%.26">
+ <details key="start" value="4203"/>
+ <details key="end" value="4291"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.125" references="/0/CppClassHeader/%.28/%">
- <details key="start" value="4103"/>
- <details key="end" value="4125"/>
+ <eAnnotations source="positions.133" references="/0/CppClassHeader/%.26/%">
+ <details key="start" value="4203"/>
+ <details key="end" value="4225"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.126" references="/0/CppClassHeader/%.28/%.1">
- <details key="start" value="4137"/>
- <details key="end" value="4190"/>
+ <eAnnotations source="positions.134" references="/0/CppClassHeader/%.26/%.1">
+ <details key="start" value="4237"/>
+ <details key="end" value="4290"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.127" references="/0/CppClassHeader/%.28/%.1/self">
+ <eAnnotations source="positions.135" references="/0/CppClassHeader/%.26/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.128" references="/0/CppClassHeader/%.28/%.1/%">
- <details key="start" value="4167"/>
- <details key="end" value="4189"/>
+ <eAnnotations source="positions.136" references="/0/CppClassHeader/%.26/%.1/%">
+ <details key="start" value="4267"/>
+ <details key="end" value="4289"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.129" references="/0/CppClassHeader/%.29">
- <details key="start" value="4193"/>
- <details key="end" value="4198"/>
- <details key="line" value="89"/>
+ <eAnnotations source="positions.137" references="/0/CppClassHeader/%.27">
+ <details key="start" value="4293"/>
+ <details key="end" value="4298"/>
+ <details key="line" value="93"/>
</eAnnotations>
- <eAnnotations source="positions.130" references="/0/CppClassHeader/%.30">
- <details key="start" value="4199"/>
- <details key="end" value="4287"/>
+ <eAnnotations source="positions.138" references="/0/CppClassHeader/%.28">
+ <details key="start" value="4299"/>
+ <details key="end" value="4387"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.131" references="/0/CppClassHeader/%.30/%">
- <details key="start" value="4199"/>
- <details key="end" value="4221"/>
+ <eAnnotations source="positions.139" references="/0/CppClassHeader/%.28/%">
+ <details key="start" value="4299"/>
+ <details key="end" value="4321"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.132" references="/0/CppClassHeader/%.30/%.1">
- <details key="start" value="4233"/>
- <details key="end" value="4286"/>
+ <eAnnotations source="positions.140" references="/0/CppClassHeader/%.28/%.1">
+ <details key="start" value="4333"/>
+ <details key="end" value="4386"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.133" references="/0/CppClassHeader/%.30/%.1/self">
+ <eAnnotations source="positions.141" references="/0/CppClassHeader/%.28/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.134" references="/0/CppClassHeader/%.30/%.1/%">
- <details key="start" value="4263"/>
- <details key="end" value="4285"/>
+ <eAnnotations source="positions.142" references="/0/CppClassHeader/%.28/%.1/%">
+ <details key="start" value="4363"/>
+ <details key="end" value="4385"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.135" references="/0/CppClassHeader/%.31">
- <details key="start" value="4289"/>
- <details key="end" value="4295"/>
- <details key="line" value="90"/>
+ <eAnnotations source="positions.143" references="/0/CppClassHeader/%.29">
+ <details key="start" value="4389"/>
+ <details key="end" value="4395"/>
+ <details key="line" value="94"/>
</eAnnotations>
- <eAnnotations source="positions.136" references="/0/CppClassHeader/%.32">
- <details key="start" value="4296"/>
- <details key="end" value="4390"/>
+ <eAnnotations source="positions.144" references="/0/CppClassHeader/%.30">
+ <details key="start" value="4396"/>
+ <details key="end" value="4490"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.137" references="/0/CppClassHeader/%.32/%">
- <details key="start" value="4296"/>
- <details key="end" value="4321"/>
+ <eAnnotations source="positions.145" references="/0/CppClassHeader/%.30/%">
+ <details key="start" value="4396"/>
+ <details key="end" value="4421"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.138" references="/0/CppClassHeader/%.32/%.1">
- <details key="start" value="4333"/>
- <details key="end" value="4389"/>
+ <eAnnotations source="positions.146" references="/0/CppClassHeader/%.30/%.1">
+ <details key="start" value="4433"/>
+ <details key="end" value="4489"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.139" references="/0/CppClassHeader/%.32/%.1/self">
+ <eAnnotations source="positions.147" references="/0/CppClassHeader/%.30/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.140" references="/0/CppClassHeader/%.32/%.1/%">
- <details key="start" value="4363"/>
- <details key="end" value="4388"/>
+ <eAnnotations source="positions.148" references="/0/CppClassHeader/%.30/%.1/%">
+ <details key="start" value="4463"/>
+ <details key="end" value="4488"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.141" references="/0/CppClassHeader/%.33">
- <details key="start" value="4392"/>
- <details key="end" value="4397"/>
- <details key="line" value="92"/>
+ <eAnnotations source="positions.149" references="/0/CppClassHeader/%.31">
+ <details key="start" value="4492"/>
+ <details key="end" value="4497"/>
+ <details key="line" value="96"/>
</eAnnotations>
- <eAnnotations source="positions.142" references="/0/CppClassHeader/%.34">
- <details key="start" value="4398"/>
- <details key="end" value="4492"/>
+ <eAnnotations source="positions.150" references="/0/CppClassHeader/%.32">
+ <details key="start" value="4498"/>
+ <details key="end" value="4592"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.143" references="/0/CppClassHeader/%.34/%">
- <details key="start" value="4398"/>
- <details key="end" value="4423"/>
+ <eAnnotations source="positions.151" references="/0/CppClassHeader/%.32/%">
+ <details key="start" value="4498"/>
+ <details key="end" value="4523"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.144" references="/0/CppClassHeader/%.34/%.1">
- <details key="start" value="4435"/>
- <details key="end" value="4491"/>
+ <eAnnotations source="positions.152" references="/0/CppClassHeader/%.32/%.1">
+ <details key="start" value="4535"/>
+ <details key="end" value="4591"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.145" references="/0/CppClassHeader/%.34/%.1/self">
+ <eAnnotations source="positions.153" references="/0/CppClassHeader/%.32/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.146" references="/0/CppClassHeader/%.34/%.1/%">
- <details key="start" value="4465"/>
- <details key="end" value="4490"/>
+ <eAnnotations source="positions.154" references="/0/CppClassHeader/%.32/%.1/%">
+ <details key="start" value="4565"/>
+ <details key="end" value="4590"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.147" references="/0/CppClassHeader/%.35">
- <details key="start" value="4494"/>
- <details key="end" value="4500"/>
- <details key="line" value="93"/>
+ <eAnnotations source="positions.155" references="/0/CppClassHeader/%.33">
+ <details key="start" value="4594"/>
+ <details key="end" value="4600"/>
+ <details key="line" value="97"/>
</eAnnotations>
- <eAnnotations source="positions.148" references="/0/CppClassHeader/%.36">
- <details key="start" value="4501"/>
- <details key="end" value="4591"/>
+ <eAnnotations source="positions.156" references="/0/CppClassHeader/%.34">
+ <details key="start" value="4601"/>
+ <details key="end" value="4691"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.149" references="/0/CppClassHeader/%.36/%">
- <details key="start" value="4501"/>
- <details key="end" value="4524"/>
+ <eAnnotations source="positions.157" references="/0/CppClassHeader/%.34/%">
+ <details key="start" value="4601"/>
+ <details key="end" value="4624"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.150" references="/0/CppClassHeader/%.36/%.1">
- <details key="start" value="4536"/>
- <details key="end" value="4590"/>
+ <eAnnotations source="positions.158" references="/0/CppClassHeader/%.34/%.1">
+ <details key="start" value="4636"/>
+ <details key="end" value="4690"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.151" references="/0/CppClassHeader/%.36/%.1/self">
+ <eAnnotations source="positions.159" references="/0/CppClassHeader/%.34/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.152" references="/0/CppClassHeader/%.36/%.1/%">
- <details key="start" value="4566"/>
- <details key="end" value="4589"/>
+ <eAnnotations source="positions.160" references="/0/CppClassHeader/%.34/%.1/%">
+ <details key="start" value="4666"/>
+ <details key="end" value="4689"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.153" references="/0/CppClassHeader/%.37">
- <details key="start" value="4593"/>
- <details key="end" value="4598"/>
- <details key="line" value="95"/>
+ <eAnnotations source="positions.161" references="/0/CppClassHeader/%.35">
+ <details key="start" value="4693"/>
+ <details key="end" value="4698"/>
+ <details key="line" value="99"/>
</eAnnotations>
- <eAnnotations source="positions.154" references="/0/CppClassHeader/%.38">
- <details key="start" value="4599"/>
- <details key="end" value="4689"/>
+ <eAnnotations source="positions.162" references="/0/CppClassHeader/%.36">
+ <details key="start" value="4699"/>
+ <details key="end" value="4789"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.155" references="/0/CppClassHeader/%.38/%">
- <details key="start" value="4599"/>
- <details key="end" value="4622"/>
+ <eAnnotations source="positions.163" references="/0/CppClassHeader/%.36/%">
+ <details key="start" value="4699"/>
+ <details key="end" value="4722"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.156" references="/0/CppClassHeader/%.38/%.1">
- <details key="start" value="4634"/>
- <details key="end" value="4688"/>
+ <eAnnotations source="positions.164" references="/0/CppClassHeader/%.36/%.1">
+ <details key="start" value="4734"/>
+ <details key="end" value="4788"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.157" references="/0/CppClassHeader/%.38/%.1/self">
+ <eAnnotations source="positions.165" references="/0/CppClassHeader/%.36/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.158" references="/0/CppClassHeader/%.38/%.1/%">
- <details key="start" value="4664"/>
- <details key="end" value="4687"/>
+ <eAnnotations source="positions.166" references="/0/CppClassHeader/%.36/%.1/%">
+ <details key="start" value="4764"/>
+ <details key="end" value="4787"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.159" references="/0/CppClassHeader/%.39">
- <details key="start" value="4691"/>
- <details key="end" value="4821"/>
- <details key="line" value="96"/>
+ <eAnnotations source="positions.167" references="/0/CppClassHeader/%.37">
+ <details key="start" value="4791"/>
+ <details key="end" value="4921"/>
+ <details key="line" value="100"/>
</eAnnotations>
- <eAnnotations source="positions.160" references="/0/CppClassHeader/%.40">
- <details key="start" value="4822"/>
- <details key="end" value="4877"/>
+ <eAnnotations source="positions.168" references="/0/CppClassHeader/%.38">
+ <details key="start" value="4922"/>
+ <details key="end" value="4977"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.161" references="/0/CppClassHeader/%.40/self">
+ <eAnnotations source="positions.169" references="/0/CppClassHeader/%.38/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.162" references="/0/CppClassHeader/%.40/%">
- <details key="start" value="4852"/>
- <details key="end" value="4876"/>
+ <eAnnotations source="positions.170" references="/0/CppClassHeader/%.38/%">
+ <details key="start" value="4952"/>
+ <details key="end" value="4976"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.163" references="/0/CppClassHeader/%.41">
- <details key="start" value="4879"/>
- <details key="end" value="4880"/>
- <details key="line" value="100"/>
+ <eAnnotations source="positions.171" references="/0/CppClassHeader/%.39">
+ <details key="start" value="4979"/>
+ <details key="end" value="4980"/>
+ <details key="line" value="104"/>
</eAnnotations>
- <eAnnotations source="positions.164" references="/0/CppClassHeader/%.42">
- <details key="start" value="4881"/>
- <details key="end" value="4936"/>
+ <eAnnotations source="positions.172" references="/0/CppClassHeader/%.40">
+ <details key="start" value="4981"/>
+ <details key="end" value="5036"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.165" references="/0/CppClassHeader/%.42/self">
+ <eAnnotations source="positions.173" references="/0/CppClassHeader/%.40/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.166" references="/0/CppClassHeader/%.42/%">
- <details key="start" value="4911"/>
- <details key="end" value="4935"/>
+ <eAnnotations source="positions.174" references="/0/CppClassHeader/%.40/%">
+ <details key="start" value="5011"/>
+ <details key="end" value="5035"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.167" references="/0/CppClassHeader/%.43">
- <details key="start" value="4938"/>
- <details key="end" value="5003"/>
- <details key="line" value="101"/>
+ <eAnnotations source="positions.175" references="/0/CppClassHeader/%.41">
+ <details key="start" value="5038"/>
+ <details key="end" value="5103"/>
+ <details key="line" value="105"/>
</eAnnotations>
- <eAnnotations source="positions.168" references="/0/CppClassHeader/%.44">
- <details key="start" value="5003"/>
- <details key="end" value="5195"/>
- <details key="line" value="103"/>
+ <eAnnotations source="positions.176" references="/0/CppClassHeader/%.42">
+ <details key="start" value="5103"/>
+ <details key="end" value="5295"/>
+ <details key="line" value="107"/>
</eAnnotations>
- <eAnnotations source="positions.169" references="/0/CppClassHeader/%.44/%">
- <details key="start" value="5021"/>
- <details key="end" value="5147"/>
- <details key="line" value="104"/>
+ <eAnnotations source="positions.177" references="/0/CppClassHeader/%.42/%">
+ <details key="start" value="5121"/>
+ <details key="end" value="5247"/>
+ <details key="line" value="108"/>
</eAnnotations>
- <eAnnotations source="positions.170" references="/0/CppClassHeader/%.44/%.1">
- <details key="start" value="5148"/>
- <details key="end" value="5187"/>
+ <eAnnotations source="positions.178" references="/0/CppClassHeader/%.42/%.1">
+ <details key="start" value="5248"/>
+ <details key="end" value="5287"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.171" references="/0/CppClassHeader/%.44/%.1/self">
+ <eAnnotations source="positions.179" references="/0/CppClassHeader/%.42/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.172" references="/0/CppClassHeader/%.44/%.1/%">
- <details key="start" value="5181"/>
- <details key="end" value="5186"/>
+ <eAnnotations source="positions.180" references="/0/CppClassHeader/%.42/%.1/%">
+ <details key="start" value="5281"/>
+ <details key="end" value="5286"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.173" references="/0/CppClassHeader/%.44/%.2">
- <details key="start" value="5189"/>
- <details key="end" value="5190"/>
- <details key="line" value="107"/>
+ <eAnnotations source="positions.181" references="/0/CppClassHeader/%.42/%.2">
+ <details key="start" value="5289"/>
+ <details key="end" value="5290"/>
+ <details key="line" value="111"/>
</eAnnotations>
- <eAnnotations source="positions.174" references="/0/CppClassHeader/%.44/%.3">
- <details key="start" value="5007"/>
- <details key="end" value="5019"/>
+ <eAnnotations source="positions.182" references="/0/CppClassHeader/%.42/%.3">
+ <details key="start" value="5107"/>
+ <details key="end" value="5119"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.175" references="/0/CppClassHeader/%.44/%.3/self">
+ <eAnnotations source="positions.183" references="/0/CppClassHeader/%.42/%.3/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.176" references="/0/CppClassHeader/%.45">
- <details key="start" value="5196"/>
- <details key="end" value="5260"/>
- <details key="line" value="108"/>
+ <eAnnotations source="positions.184" references="/0/CppClassHeader/%.43">
+ <details key="start" value="5296"/>
+ <details key="end" value="5360"/>
+ <details key="line" value="112"/>
</eAnnotations>
- <eAnnotations source="positions.177" references="/0/CppClassHeader/%.46">
- <details key="start" value="5261"/>
- <details key="end" value="5299"/>
+ <eAnnotations source="positions.185" references="/0/CppClassHeader/%.44">
+ <details key="start" value="5361"/>
+ <details key="end" value="5399"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.178" references="/0/CppClassHeader/%.46/self">
+ <eAnnotations source="positions.186" references="/0/CppClassHeader/%.44/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.179" references="/0/CppClassHeader/%.46/%">
- <details key="start" value="5294"/>
- <details key="end" value="5298"/>
+ <eAnnotations source="positions.187" references="/0/CppClassHeader/%.44/%">
+ <details key="start" value="5394"/>
+ <details key="end" value="5398"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.180" references="/0/CppClassHeader/%.47">
- <details key="start" value="5301"/>
- <details key="end" value="5302"/>
- <details key="line" value="111"/>
+ <eAnnotations source="positions.188" references="/0/CppClassHeader/%.45">
+ <details key="start" value="5401"/>
+ <details key="end" value="5402"/>
+ <details key="line" value="115"/>
</eAnnotations>
- <eAnnotations source="positions.181" references="/0/CppClassHeader/%.48">
- <details key="start" value="5303"/>
- <details key="end" value="5312"/>
+ <eAnnotations source="positions.189" references="/0/CppClassHeader/%.46">
+ <details key="start" value="5403"/>
+ <details key="end" value="5412"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.182" references="/0/CppClassHeader/%.48/self">
+ <eAnnotations source="positions.190" references="/0/CppClassHeader/%.46/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.183" references="/0/CppClassHeader/%.49">
- <details key="start" value="5314"/>
- <details key="end" value="5399"/>
- <details key="line" value="112"/>
+ <eAnnotations source="positions.191" references="/0/CppClassHeader/%.47">
+ <details key="start" value="5414"/>
+ <details key="end" value="5499"/>
+ <details key="line" value="116"/>
</eAnnotations>
- <eAnnotations source="positions.184" references="/0/CppClassHeader/%.50">
- <details key="start" value="5400"/>
- <details key="end" value="5410"/>
+ <eAnnotations source="positions.192" references="/0/CppClassHeader/%.48">
+ <details key="start" value="5500"/>
+ <details key="end" value="5510"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.185" references="/0/CppClassHeader/%.50/class">
- <details key="start" value="5400"/>
- <details key="end" value="5405"/>
+ <eAnnotations source="positions.193" references="/0/CppClassHeader/%.48/class">
+ <details key="start" value="5500"/>
+ <details key="end" value="5505"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.186" references="/0/CppClassHeader/%.51">
- <details key="start" value="5412"/>
- <details key="end" value="5496"/>
- <details key="line" value="114"/>
+ <eAnnotations source="positions.194" references="/0/CppClassHeader/%.49">
+ <details key="start" value="5512"/>
+ <details key="end" value="5596"/>
+ <details key="line" value="118"/>
</eAnnotations>
- <eAnnotations source="positions.187" references="/0/CppClassHeader/class">
- <details key="start" value="3425"/>
- <details key="end" value="3443"/>
+ <eAnnotations source="positions.195" references="/0/CppClassHeader/class">
+ <details key="start" value="3432"/>
+ <details key="end" value="3450"/>
<details key="line" value="67"/>
</eAnnotations>
</ecore:EAnnotation>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.mtl
index 3442e8a..767eb5f 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppClassHeader.mtl
@@ -52,7 +52,7 @@ Bug 422373: The default initializer should not be generated if there are any use
CppClassOperationsDeclaration.
/]
[if getOwnedOperations()->any(hasStereotype(standard::Create)) = null]
- [let attributeList : Set(Property) = attribute->select(
+ [let attributeList : OrderedSet(Property) = attribute->select(
(isStatic = false) and
(defaultValue <> null) and
(defaultValue.stringValue() <> null))]
@@ -72,9 +72,13 @@ Bug 422373: The default initializer should not be generated if there are any use
[class.name/] class header
************************************************************/
-[_package.CppOwnerPackageIncludeDeclaration()/]
-
-[CppClassAllIncludesDeclaration()/]
+[for (path : String |
+ Sequence{ _package.cppOwnerPackageIncludePath() }
+ ->addAll( CppClassAllIncludes() )
+ ->flatten()
+ ->asOrderedSet())]
+[path.IncludeDirective()/]
+[/for]
[CppIncludeHeader()/]
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.emtl
index e64f37d..b32aedf 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.emtl
@@ -300,6 +300,46 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</parameter>
</ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Template" name="IncludeDirective" visibility="Public">
+ <body xsi:type="mtl:IfBlock">
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="#include &quot;"/>
+ <body xsi:type="ocl.ecore:VariableExp" name="path" referredVariable="/0/IncludeDirective/path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </body>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;&#xA;"/>
+ <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="path" referredVariable="/0/IncludeDirective/path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </source>
+ <argument xsi:type="ocl.ecore:NullLiteralExp">
+ <eType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/%3C%3E"/>
+ </source>
+ <argument xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="path" referredVariable="/0/IncludeDirective/path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/size"/>
+ </source>
+ <argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="0">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3E"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
+ </ifExpr>
+ </body>
+ <parameter name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </parameter>
+ </ownedModuleElement>
</mtl:Module>
<ecore:EPackage name="additions">
<eClassifiers xsi:type="ecore:EClass" name="String_Class">
@@ -351,6 +391,16 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
+ <eOperations name="IncludeDirective">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL" references="/0/IncludeDirective"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
<eOperations name="hasStereotype">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
@@ -630,6 +680,24 @@
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </ocl.ecore:Variable>
+ <ocl.ecore:Variable name="self">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </ocl.ecore:Variable>
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/CppIncludeHeader">
<details key="start" value="255"/>
@@ -1111,5 +1179,75 @@
<details key="end" value="958"/>
<details key="line" value="26"/>
</eAnnotations>
+ <eAnnotations source="positions.96" references="/0/IncludeDirective">
+ <details key="start" value="1245"/>
+ <details key="end" value="1373"/>
+ <details key="line" value="36"/>
+ </eAnnotations>
+ <eAnnotations source="positions.97" references="/0/IncludeDirective/%">
+ <details key="start" value="1295"/>
+ <details key="end" value="1361"/>
+ <details key="line" value="37"/>
+ </eAnnotations>
+ <eAnnotations source="positions.98" references="/0/IncludeDirective/%/%">
+ <details key="start" value="1337"/>
+ <details key="end" value="1347"/>
+ <details key="line" value="38"/>
+ </eAnnotations>
+ <eAnnotations source="positions.99" references="/0/IncludeDirective/%/path">
+ <details key="start" value="1348"/>
+ <details key="end" value="1352"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.100" references="/0/IncludeDirective/%/%.1">
+ <details key="start" value="1354"/>
+ <details key="end" value="1356"/>
+ <details key="line" value="38"/>
+ </eAnnotations>
+ <eAnnotations source="positions.101" references="/0/IncludeDirective/%/%.2">
+ <details key="start" value="1299"/>
+ <details key="end" value="1335"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.102" references="/0/IncludeDirective/%/%.2/%">
+ <details key="start" value="1299"/>
+ <details key="end" value="1313"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.103" references="/0/IncludeDirective/%/%.2/%/path">
+ <details key="start" value="1300"/>
+ <details key="end" value="1304"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.104" references="/0/IncludeDirective/%/%.2/%/%">
+ <details key="start" value="1308"/>
+ <details key="end" value="1312"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.105" references="/0/IncludeDirective/%/%.2/%.1">
+ <details key="start" value="1318"/>
+ <details key="end" value="1335"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.106" references="/0/IncludeDirective/%/%.2/%.1/%">
+ <details key="start" value="1319"/>
+ <details key="end" value="1330"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.107" references="/0/IncludeDirective/%/%.2/%.1/%/path">
+ <details key="start" value="1319"/>
+ <details key="end" value="1323"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.108" references="/0/IncludeDirective/%/%.2/%.1/%.1">
+ <details key="start" value="1333"/>
+ <details key="end" value="1334"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.109" references="/0/IncludeDirective/path">
+ <details key="start" value="1279"/>
+ <details key="end" value="1292"/>
+ <details key="line" value="36"/>
+ </eAnnotations>
</ecore:EAnnotation>
</xmi:XMI>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.mtl
index 7dd1811..4c6f033 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppIncludeUtils.mtl
@@ -32,3 +32,9 @@
[constIncludePreBodyEnd()/]
[/if][/let][/if]
[/template]
+
+[template public IncludeDirective(path : String)]
+[if (path <> null) and (path.size() > 0)]
+#include "[path/]"
+[/if]
+[/template]
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.emtl
index 6fe16ad..55fc473 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.emtl
@@ -41,42 +41,65 @@
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" package header&#xA; ************************************************************/&#xA;&#xA;"/>
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppOwnerPackageIncludeDeclaration"/>
- <argument xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/9">
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/cppOwnerPackageIncludePath"/>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestingPackage"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/9">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package/nestingPackage"/>
+ </argument>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;#ifndef _IN_&#xA;#define _IN_&#xA;#endif&#xA;#ifndef _OUT_&#xA;#define _OUT_&#xA;#endif&#xA;#ifndef _INOUT_&#xA;#define _INOUT_&#xA;#endif&#xA;&#xA;&#x9;&#xA;/* Package dependency header include */&#xA;"/>
<body xsi:type="mtl:ForBlock">
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="#include &lt;"/>
- <body xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/Pkg_"/>
- <body xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/14">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </source>
- <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="."/>
- <body xsi:type="mtl:QueryInvocation">
+ <body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <definition href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/Pkg_">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </source>
+ <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </source>
+ <argument xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </argument>
+ </argument>
</argument>
</body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">&#xA;"/>
+ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<iterSet xsi:type="mtl:QueryInvocation" eType="/10/Sequence(Package)">
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getUsedPackages"/>
<argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/11">
@@ -88,7 +111,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="CppIncludeUtils.emtl#/0/CppIncludeHeader"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/18">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/16">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</argument>
</body>
@@ -96,7 +119,7 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/openNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/19">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/17">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</argument>
</body>
@@ -104,7 +127,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="Constants.emtl#/0/packageTypes"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/20">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/18">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</argument>
</body>
@@ -112,7 +135,7 @@
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="util/clazz/CppClassTypeAndEnum.emtl#/0/CppClassTypeAndEnumPackage"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/21">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/19">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</argument>
</body>
@@ -120,14 +143,14 @@
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../utils/CppGenUtils.emtl#/0/closeNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/22">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/20">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;/************************************************************&#xA; End of Pkg_"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23">
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/21">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
@@ -143,6 +166,13 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eAnnotations>
+ <eOperations name="+">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="other">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -261,12 +291,24 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
- <eOperations name="CppOwnerPackageIncludeDeclaration">
+ <eOperations name="IncludeDirective">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL">
+ <references href="CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ </eAnnotations>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
+ <eOperations name="cppOwnerPackageIncludePath">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
- <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/CppOwnerPackageIncludeDeclaration"/>
+ <references href="util/clazz/CppClassIncludeClassDeclaration.emtl#/0/cppOwnerPackageIncludePath"/>
</eAnnotations>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="pkg">
@@ -413,12 +455,6 @@
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </ocl.ecore:Variable>
<ocl.ecore:Variable name="i">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</ocl.ecore:Variable>
@@ -446,7 +482,7 @@
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/CppPackageHeader">
<details key="start" value="767"/>
- <details key="end" value="1661"/>
+ <details key="end" value="1692"/>
<details key="line" value="15"/>
</eAnnotations>
<eAnnotations source="positions.1" references="/0/CppPackageHeader/%">
@@ -501,185 +537,210 @@
</eAnnotations>
<eAnnotations source="positions.11" references="/0/CppPackageHeader/%.7">
<details key="start" value="1048"/>
- <details key="end" value="1098"/>
+ <details key="end" value="1110"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.12" references="/0/CppPackageHeader/%.7/%">
<details key="start" value="1048"/>
+ <details key="end" value="1091"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.13" references="/0/CppPackageHeader/%.7/%/%">
+ <details key="start" value="1048"/>
<details key="end" value="1062"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.13" references="/0/CppPackageHeader/%.7/%/self">
+ <eAnnotations source="positions.14" references="/0/CppPackageHeader/%.7/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.14" references="/0/CppPackageHeader/%.8">
- <details key="start" value="1100"/>
- <details key="end" value="1275"/>
+ <eAnnotations source="positions.15" references="/0/CppPackageHeader/%.8">
+ <details key="start" value="1112"/>
+ <details key="end" value="1287"/>
<details key="line" value="24"/>
</eAnnotations>
- <eAnnotations source="positions.15" references="/0/CppPackageHeader/%.9">
- <details key="start" value="1275"/>
- <details key="end" value="1368"/>
+ <eAnnotations source="positions.16" references="/0/CppPackageHeader/%.9">
+ <details key="start" value="1287"/>
+ <details key="end" value="1399"/>
<details key="line" value="37"/>
</eAnnotations>
- <eAnnotations source="positions.16" references="/0/CppPackageHeader/%.9/%">
- <details key="start" value="1301"/>
- <details key="end" value="1311"/>
- <details key="line" value="38"/>
+ <eAnnotations source="positions.17" references="/0/CppPackageHeader/%.9/%">
+ <details key="start" value="1314"/>
+ <details key="end" value="1390"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.18" references="/0/CppPackageHeader/%.9/%/%">
+ <details key="start" value="1332"/>
+ <details key="end" value="1388"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.19" references="/0/CppPackageHeader/%.9/%/%/%">
+ <details key="start" value="1332"/>
+ <details key="end" value="1368"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.20" references="/0/CppPackageHeader/%.9/%/%/%/%">
+ <details key="start" value="1332"/>
+ <details key="end" value="1362"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.17" references="/0/CppPackageHeader/%.9/%.1">
- <details key="start" value="1312"/>
- <details key="end" value="1325"/>
+ <eAnnotations source="positions.21" references="/0/CppPackageHeader/%.9/%/%/%/%/%">
+ <details key="start" value="1332"/>
+ <details key="end" value="1355"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.18" references="/0/CppPackageHeader/%.9/%.1/self">
+ <eAnnotations source="positions.22" references="/0/CppPackageHeader/%.9/%/%/%/%/%/%">
+ <details key="start" value="1332"/>
+ <details key="end" value="1345"/>
+ <details key="line" value="0"/>
+ </eAnnotations>
+ <eAnnotations source="positions.23" references="/0/CppPackageHeader/%.9/%/%/%/%/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.19" references="/0/CppPackageHeader/%.9/%.2">
- <details key="start" value="1327"/>
- <details key="end" value="1332"/>
- <details key="line" value="38"/>
+ <eAnnotations source="positions.24" references="/0/CppPackageHeader/%.9/%/%/%/%/%/%.1">
+ <details key="start" value="1348"/>
+ <details key="end" value="1355"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.20" references="/0/CppPackageHeader/%.9/%.3">
- <details key="start" value="1333"/>
- <details key="end" value="1337"/>
+ <eAnnotations source="positions.25" references="/0/CppPackageHeader/%.9/%/%/%/%/%.1">
+ <details key="start" value="1358"/>
+ <details key="end" value="1362"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.21" references="/0/CppPackageHeader/%.9/%.3/self">
+ <eAnnotations source="positions.26" references="/0/CppPackageHeader/%.9/%/%/%/%/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.22" references="/0/CppPackageHeader/%.9/%.4">
- <details key="start" value="1339"/>
- <details key="end" value="1340"/>
- <details key="line" value="38"/>
+ <eAnnotations source="positions.27" references="/0/CppPackageHeader/%.9/%/%/%/%.1">
+ <details key="start" value="1365"/>
+ <details key="end" value="1368"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.23" references="/0/CppPackageHeader/%.9/%.5">
- <details key="start" value="1341"/>
- <details key="end" value="1358"/>
+ <eAnnotations source="positions.28" references="/0/CppPackageHeader/%.9/%/%/%.1">
+ <details key="start" value="1371"/>
+ <details key="end" value="1388"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.24" references="/0/CppPackageHeader/%.9/%.5/self">
+ <eAnnotations source="positions.29" references="/0/CppPackageHeader/%.9/%/%/%.1/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.25" references="/0/CppPackageHeader/%.9/%.6">
- <details key="start" value="1360"/>
- <details key="end" value="1362"/>
- <details key="line" value="38"/>
+ <eAnnotations source="positions.30" references="/0/CppPackageHeader/%.9/%.1">
+ <details key="start" value="1392"/>
+ <details key="end" value="1393"/>
+ <details key="line" value="39"/>
</eAnnotations>
- <eAnnotations source="positions.26" references="/0/CppPackageHeader/%.9/%.7">
- <details key="start" value="1281"/>
- <details key="end" value="1298"/>
+ <eAnnotations source="positions.31" references="/0/CppPackageHeader/%.9/%.2">
+ <details key="start" value="1293"/>
+ <details key="end" value="1310"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.27" references="/0/CppPackageHeader/%.9/%.7/self">
+ <eAnnotations source="positions.32" references="/0/CppPackageHeader/%.9/%.2/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.28" references="/0/CppPackageHeader/%.10">
- <details key="start" value="1369"/>
- <details key="end" value="1370"/>
+ <eAnnotations source="positions.33" references="/0/CppPackageHeader/%.10">
+ <details key="start" value="1400"/>
+ <details key="end" value="1401"/>
<details key="line" value="40"/>
</eAnnotations>
- <eAnnotations source="positions.29" references="/0/CppPackageHeader/%.11">
- <details key="start" value="1371"/>
- <details key="end" value="1389"/>
+ <eAnnotations source="positions.34" references="/0/CppPackageHeader/%.11">
+ <details key="start" value="1402"/>
+ <details key="end" value="1420"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.30" references="/0/CppPackageHeader/%.11/self">
+ <eAnnotations source="positions.35" references="/0/CppPackageHeader/%.11/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.31" references="/0/CppPackageHeader/%.12">
- <details key="start" value="1391"/>
- <details key="end" value="1393"/>
+ <eAnnotations source="positions.36" references="/0/CppPackageHeader/%.12">
+ <details key="start" value="1422"/>
+ <details key="end" value="1424"/>
<details key="line" value="42"/>
</eAnnotations>
- <eAnnotations source="positions.32" references="/0/CppPackageHeader/%.13">
- <details key="start" value="1394"/>
- <details key="end" value="1402"/>
+ <eAnnotations source="positions.37" references="/0/CppPackageHeader/%.13">
+ <details key="start" value="1425"/>
+ <details key="end" value="1433"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.33" references="/0/CppPackageHeader/%.13/self">
+ <eAnnotations source="positions.38" references="/0/CppPackageHeader/%.13/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.34" references="/0/CppPackageHeader/%.14">
- <details key="start" value="1404"/>
- <details key="end" value="1405"/>
+ <eAnnotations source="positions.39" references="/0/CppPackageHeader/%.14">
+ <details key="start" value="1435"/>
+ <details key="end" value="1436"/>
<details key="line" value="44"/>
</eAnnotations>
- <eAnnotations source="positions.35" references="/0/CppPackageHeader/%.15">
- <details key="start" value="1406"/>
- <details key="end" value="1420"/>
+ <eAnnotations source="positions.40" references="/0/CppPackageHeader/%.15">
+ <details key="start" value="1437"/>
+ <details key="end" value="1451"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.36" references="/0/CppPackageHeader/%.15/self">
+ <eAnnotations source="positions.41" references="/0/CppPackageHeader/%.15/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.37" references="/0/CppPackageHeader/%.16">
- <details key="start" value="1422"/>
- <details key="end" value="1423"/>
+ <eAnnotations source="positions.42" references="/0/CppPackageHeader/%.16">
+ <details key="start" value="1453"/>
+ <details key="end" value="1454"/>
<details key="line" value="45"/>
</eAnnotations>
- <eAnnotations source="positions.38" references="/0/CppPackageHeader/%.17">
- <details key="start" value="1424"/>
- <details key="end" value="1452"/>
+ <eAnnotations source="positions.43" references="/0/CppPackageHeader/%.17">
+ <details key="start" value="1455"/>
+ <details key="end" value="1483"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.39" references="/0/CppPackageHeader/%.17/self">
+ <eAnnotations source="positions.44" references="/0/CppPackageHeader/%.17/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.40" references="/0/CppPackageHeader/%.18">
- <details key="start" value="1454"/>
- <details key="end" value="1455"/>
+ <eAnnotations source="positions.45" references="/0/CppPackageHeader/%.18">
+ <details key="start" value="1485"/>
+ <details key="end" value="1486"/>
<details key="line" value="46"/>
</eAnnotations>
- <eAnnotations source="positions.41" references="/0/CppPackageHeader/%.19">
- <details key="start" value="1456"/>
- <details key="end" value="1465"/>
+ <eAnnotations source="positions.46" references="/0/CppPackageHeader/%.19">
+ <details key="start" value="1487"/>
+ <details key="end" value="1496"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.42" references="/0/CppPackageHeader/%.19/self">
+ <eAnnotations source="positions.47" references="/0/CppPackageHeader/%.19/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.43" references="/0/CppPackageHeader/%.20">
- <details key="start" value="1467"/>
- <details key="end" value="1556"/>
+ <eAnnotations source="positions.48" references="/0/CppPackageHeader/%.20">
+ <details key="start" value="1498"/>
+ <details key="end" value="1587"/>
<details key="line" value="47"/>
</eAnnotations>
- <eAnnotations source="positions.44" references="/0/CppPackageHeader/%.21">
- <details key="start" value="1557"/>
- <details key="end" value="1561"/>
+ <eAnnotations source="positions.49" references="/0/CppPackageHeader/%.21">
+ <details key="start" value="1588"/>
+ <details key="end" value="1592"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.45" references="/0/CppPackageHeader/%.21/self">
+ <eAnnotations source="positions.50" references="/0/CppPackageHeader/%.21/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.46" references="/0/CppPackageHeader/%.22">
- <details key="start" value="1563"/>
- <details key="end" value="1649"/>
+ <eAnnotations source="positions.51" references="/0/CppPackageHeader/%.22">
+ <details key="start" value="1594"/>
+ <details key="end" value="1680"/>
<details key="line" value="49"/>
</eAnnotations>
- <eAnnotations source="positions.47" references="/0/CppPackageHeader/pkg">
+ <eAnnotations source="positions.52" references="/0/CppPackageHeader/pkg">
<details key="start" value="801"/>
<details key="end" value="814"/>
<details key="line" value="15"/>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.mtl
index e578583..cca687e 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/CppPackageHeader.mtl
@@ -20,7 +20,7 @@
Pkg_[name/] package header
************************************************************/
-[nestingPackage.CppOwnerPackageIncludeDeclaration()/]
+[nestingPackage.cppOwnerPackageIncludePath().IncludeDirective()/]
#ifndef _IN_
#define _IN_
@@ -35,7 +35,7 @@
/* Package dependency header include */
[for (getUsedPackages())]
-#include <[getFullPath()/]/Pkg_[name/].[getHeaderSuffix()/]>
+[IncludeDirective( getFullPath() + '/Pkg_' + name + '.' + getHeaderSuffix() )/]
[/for]
[CppIncludeHeader()/]
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.emtl
index b83c5c5..a6f29b0 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.emtl
@@ -10,76 +10,19 @@
<imports href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0"/>
<imports href="../../../utils/CppGenUtils.emtl#/0"/>
<imports href="../../../utils/ClassUtils.emtl#/0"/>
+ <imports href="../../CppIncludeUtils.emtl#/0"/>
<imports href="CppClassIncludeDeclaration.emtl#/0"/>
- <ownedModuleElement xsi:type="mtl:Comment">
- <body startPosition="412" endPosition="421" value=" USED??? "/>
- </ownedModuleElement>
- <ownedModuleElement xsi:type="mtl:Template" name="CppClassIncludeClassDeclarationTemplate" visibility="Public">
- <body xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="../../../utils/CppGenUtils.emtl#/0/openNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/7">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
- <body xsi:type="mtl:IfBlock">
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="template "/>
- <ifExpr xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppClassIncludeClassDeclarationTemplate/class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/Template">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Template"/>
- </argument>
- </ifExpr>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="class "/>
- <body xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <source xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppClassIncludeClassDeclarationTemplate/class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </source>
- <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;"/>
- <body xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="../../../utils/CppGenUtils.emtl#/0/closeNS"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/11">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </argument>
- </body>
- <parameter name="class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <ownedModuleElement xsi:type="mtl:Query" name="cppOwnerPackageIncludePath" visibility="Public">
+ <parameter name="pkg">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</parameter>
- </ownedModuleElement>
- <ownedModuleElement xsi:type="mtl:Template" name="CppOwnerPackageIncludeDeclaration" visibility="Public">
- <body xsi:type="mtl:IfBlock">
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/* Owner package header include */&#xA;#include &lt;"/>
- <body xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/17">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/Pkg_"/>
- <body xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <source xsi:type="ocl.ecore:VariableExp" name="pkg" referredVariable="/0/CppOwnerPackageIncludeDeclaration/pkg">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </source>
- <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".h>&#xA;"/>
- <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+ <expression xsi:type="ocl.ecore:IfExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <condition xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:VariableExp" name="pkg" referredVariable="/0/CppOwnerPackageIncludeDeclaration/pkg">
+ <source xsi:type="ocl.ecore:VariableExp" name="pkg" referredVariable="/0/cppOwnerPackageIncludePath/pkg">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</source>
<argument xsi:type="ocl.ecore:NullLiteralExp">
@@ -92,199 +35,249 @@
<source xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/16">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/CppRoot">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/CppRoot">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//CppRoot"/>
</argument>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
- </ifExpr>
- </body>
- <parameter name="pkg">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </parameter>
+ </condition>
+ <thenExpression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/Pkg_">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="pkg" referredVariable="/0/cppOwnerPackageIncludePath/pkg">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </source>
+ <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".h">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </thenExpression>
+ <elseExpression xsi:type="ocl.ecore:NullLiteralExp">
+ <eType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+ </elseExpression>
+ </expression>
+ <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</ownedModuleElement>
- <ownedModuleElement xsi:type="mtl:Template" name="CppClassAllIncludesDeclaration" visibility="Public">
- <body xsi:type="mtl:TemplateInvocation" definition="/0/CppClassAllIncludesDeclaration.1">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23">
+ <ownedModuleElement xsi:type="mtl:Query" name="CppClassAllIncludes" visibility="Public" type="/3/Sequence(String)">
+ <parameter name="class">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </parameter>
+ <expression xsi:type="mtl:QueryInvocation" eType="/3/Sequence(String)" definition="/0/cppClassAllIncludes">
+ <argument xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppClassAllIncludes/class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="mtl:QueryInvocation" eType="/3/Sequence(Classifier)">
<definition href="../../../utils/ClassUtils.emtl#/0/includedClassifiers"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/9">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</argument>
- </body>
+ </expression>
+ </ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Query" name="CppClassAllIncludesDeclarationBody" visibility="Public" type="/3/Sequence(String)">
<parameter name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</parameter>
- </ownedModuleElement>
- <ownedModuleElement xsi:type="mtl:Template" name="CppClassAllIncludesDeclarationBody" visibility="Public">
- <body xsi:type="mtl:TemplateInvocation" definition="/0/CppClassAllIncludesDeclaration.1">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/28">
+ <expression xsi:type="mtl:QueryInvocation" eType="/3/Sequence(String)" definition="/0/cppClassAllIncludes">
+ <argument xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppClassAllIncludesDeclarationBody/class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
<argument xsi:type="mtl:QueryInvocation" eType="/3/Sequence(Classifier)">
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getTypesViaDependencies"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/28">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
</argument>
- </body>
+ </expression>
+ </ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Query" name="cppClassAllIncludes" type="/3/Sequence(String)">
<parameter name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</parameter>
- </ownedModuleElement>
- <ownedModuleElement xsi:type="mtl:Template" name="CppClassAllIncludesDeclaration" visibility="Public">
- <body xsi:type="mtl:ForBlock">
- <body xsi:type="mtl:IfBlock">
- <body xsi:type="mtl:IfBlock">
- <body xsi:type="mtl:IfBlock">
- <body xsi:type="mtl:TemplateInvocation" definition="/0/CppOwnerPackageIncludeDeclaration">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <argument xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/CppClassAllIncludesDeclaration.1/%/cl">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
- </source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/Package">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
- <ifExpr xsi:type="ocl.ecore:OperationCallExp">
+ <parameter name="list" eType="/3/Sequence(Classifier)"/>
+ <expression xsi:type="ocl.ecore:IteratorExp" name="reject" eType="/3/Sequence(OclAny)">
+ <source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Sequence(OclAny)">
+ <source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/3/Sequence(OclAny)">
+ <source xsi:type="ocl.ecore:VariableExp" name="list" eType="/3/Sequence(Classifier)" referredVariable="/0/cppClassAllIncludes/list"/>
+ <body xsi:type="ocl.ecore:IfExp">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ <condition xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/CppClassAllIncludesDeclaration.1/%/cl">
+ <source xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/cppClassAllIncludes/reject/%/collect/cl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/cppClassAllIncludes/class">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/%3C%3E"/>
</source>
- <argument xsi:type="ocl.ecore:NullLiteralExp">
- <eType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </argument>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/NoCodeGen">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//NoCodeGen"/>
+ </argument>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>
</argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/%3C%3E"/>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
</source>
- <argument xsi:type="ocl.ecore:OperationCallExp">
+ <argument xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:PropertyCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
- <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/CppClassAllIncludesDeclaration.1/%/cl">
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/15">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </argument>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/External">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//External"/>
+ </argument>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>
+ </condition>
+ <thenExpression xsi:type="ocl.ecore:IfExp">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ <condition xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/cppClassAllIncludes/reject/%/collect/cl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</source>
- <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/Enumeration">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Enumeration"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
</source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/Package">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/cppClassAllIncludes/reject/%/collect/cl">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </source>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/PrimitiveType">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//PrimitiveType"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
</argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
- </ifExpr>
- </body>
- <ifExpr xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/36">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/Enumeration">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Enumeration"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
- </source>
- <argument xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/36">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/PrimitiveType">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//PrimitiveType"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>
- </ifExpr>
- <else>
- <body xsi:type="mtl:TemplateInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <definition href="CppClassIncludeDeclaration.emtl#/0/CppClassIncludeDeclaration"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/39">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
- </else>
- </body>
- <ifExpr xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/CppClassAllIncludesDeclaration.1/%/cl">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </source>
- <argument xsi:type="ocl.ecore:VariableExp" name="class" referredVariable="/0/CppClassAllIncludesDeclaration.1/class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/%3C%3E"/>
- </source>
- <argument xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <source xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35">
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>
+ </condition>
+ <thenExpression xsi:type="ocl.ecore:IfExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <condition xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/cppClassAllIncludes/reject/%/collect/cl">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
+ </source>
+ <argument xsi:type="ocl.ecore:NullLiteralExp">
+ <eType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/%3C%3E"/>
+ </source>
+ <argument xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/cppClassAllIncludes/reject/%/collect/cl">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
+ </source>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/Package">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
+ </condition>
+ <thenExpression xsi:type="mtl:QueryInvocation" definition="/0/cppOwnerPackageIncludePath">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <argument xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ <source xsi:type="ocl.ecore:PropertyCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/cppClassAllIncludes/reject/%/collect/cl">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </source>
+ <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/owner"/>
+ </source>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/Package">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
+ </argument>
+ </thenExpression>
+ <elseExpression xsi:type="ocl.ecore:NullLiteralExp">
+ <eType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+ </elseExpression>
+ </thenExpression>
+ <elseExpression xsi:type="mtl:QueryInvocation" eType="/3/Sequence(String)">
+ <definition href="CppClassIncludeDeclaration.emtl#/0/cppClassIncludes"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="cl" referredVariable="/0/cppClassAllIncludes/reject/%/collect/cl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/NoCodeGen">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//NoCodeGen"/>
- </argument>
- </source>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
- </source>
- <argument xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/8/External">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//External"/>
- </argument>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>
- </ifExpr>
+ </elseExpression>
+ </thenExpression>
+ <elseExpression xsi:type="ocl.ecore:NullLiteralExp">
+ <eType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+ </elseExpression>
+ </body>
+ <iterator xsi:type="ocl.ecore:Variable" name="cl">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
+ </iterator>
+ </source>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/flatten"/>
+ </source>
+ <body xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
+ <source xsi:type="ocl.ecore:VariableExp" name="str" referredVariable="/0/cppClassAllIncludes/reject/str">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </source>
+ <argument xsi:type="ocl.ecore:NullLiteralExp">
+ <eType xsi:type="ocl.ecore:VoidType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclVoid"/>
+ </argument>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/>
</body>
- <loopVariable name="cl">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </loopVariable>
- <iterSet xsi:type="ocl.ecore:VariableExp" name="list" eType="/3/Sequence(Classifier)" referredVariable="/0/CppClassAllIncludesDeclaration.1/list"/>
- </body>
- <parameter name="class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </parameter>
- <parameter name="list" eType="/3/Sequence(Classifier)"/>
+ <iterator xsi:type="ocl.ecore:Variable" name="str">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </iterator>
+ </expression>
</ownedModuleElement>
</mtl:Module>
<ecore:EPackage name="additions">
@@ -292,6 +285,13 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eAnnotations>
+ <eOperations name="+">
+ <eAnnotations source="MTL non-standard"/>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="other">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </eParameters>
+ </eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
@@ -307,52 +307,39 @@
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</eAnnotations>
- <eOperations name="CppClassIncludeClassDeclarationTemplate">
- <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
- <contents xsi:type="ocl.ecore:Constraint"/>
- </eAnnotations>
- <eAnnotations source="MTL" references="/0/CppClassIncludeClassDeclarationTemplate"/>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <eParameters name="class">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </eParameters>
- </eOperations>
- <eOperations name="CppOwnerPackageIncludeDeclaration">
+ <eOperations name="cppOwnerPackageIncludePath">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
- <eAnnotations source="MTL" references="/0/CppOwnerPackageIncludeDeclaration"/>
+ <eAnnotations source="MTL" references="/0/cppOwnerPackageIncludePath"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="pkg">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</eParameters>
</eOperations>
- <eOperations name="CppClassAllIncludesDeclaration">
+ <eOperations name="CppClassAllIncludes" eType="/3/Sequence(String)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
- <eAnnotations source="MTL" references="/0/CppClassAllIncludesDeclaration"/>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eAnnotations source="MTL" references="/0/CppClassAllIncludes"/>
<eParameters name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
</eOperations>
- <eOperations name="CppClassAllIncludesDeclarationBody">
+ <eOperations name="CppClassAllIncludesDeclarationBody" eType="/3/Sequence(String)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/CppClassAllIncludesDeclarationBody"/>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
</eOperations>
- <eOperations name="CppClassAllIncludesDeclaration">
+ <eOperations name="cppClassAllIncludes" eType="/3/Sequence(String)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
- <eAnnotations source="MTL" references="/0/CppClassAllIncludesDeclaration.1"/>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eAnnotations source="MTL" references="/0/cppClassAllIncludes"/>
<eParameters name="class">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
@@ -397,30 +384,6 @@
<eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
</eParameters>
</eOperations>
- <eOperations name="openNS">
- <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
- <contents xsi:type="ocl.ecore:Constraint"/>
- </eAnnotations>
- <eAnnotations source="MTL">
- <references href="../../../utils/CppGenUtils.emtl#/0/openNS"/>
- </eAnnotations>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <eParameters name="arg0">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
- </eParameters>
- </eOperations>
- <eOperations name="closeNS">
- <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
- <contents xsi:type="ocl.ecore:Constraint"/>
- </eAnnotations>
- <eAnnotations source="MTL">
- <references href="../../../utils/CppGenUtils.emtl#/0/closeNS"/>
- </eAnnotations>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <eParameters name="arg0">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
- </eParameters>
- </eOperations>
<eOperations name="includedClassifiers">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
@@ -433,14 +396,14 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eParameters>
</eOperations>
- <eOperations name="CppClassIncludeDeclaration">
+ <eOperations name="cppClassIncludes">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
- <references href="CppClassIncludeDeclaration.emtl#/0/CppClassIncludeDeclaration"/>
+ <references href="CppClassIncludeDeclaration.emtl#/0/cppClassIncludes"/>
</eAnnotations>
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eType xsi:type="ocl.ecore:SequenceType" href="CppClassIncludeDeclaration.emtl#/3/Sequence(String)"/>
<eParameters name="ne">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
@@ -466,11 +429,6 @@
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)"/>
</eAnnotations>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Class_Class">
- <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
- <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </eAnnotations>
- </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Package_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
@@ -481,6 +439,11 @@
<references href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eAnnotations>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Class_Class">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <references href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ </eAnnotations>
+ </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TemplateParameter_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/uml2/5.0.0/UML#//TemplateParameter"/>
@@ -526,26 +489,20 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</ocl.ecore:Variable>
<ecore:EPackage name="collections">
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
<eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Classifier)" instanceClassName="java.util.List">
<elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OclAny)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ </eClassifiers>
</ecore:EPackage>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</ocl.ecore:Variable>
<ecore:EPackage name="types">
- <eClassifiers xsi:type="ocl.ecore:TypeType" name="Template">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Template"/>
- </eClassifiers>
<eClassifiers xsi:type="ocl.ecore:TypeType" name="CppRoot">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//CppRoot"/>
</eClassifiers>
@@ -566,33 +523,6 @@
</eClassifiers>
</ecore:EPackage>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
@@ -602,12 +532,6 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
@@ -617,12 +541,6 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
@@ -632,511 +550,436 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Classifier"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="i">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</ocl.ecore:Variable>
<ecore:EAnnotation source="positions">
- <eAnnotations source="positions.0" references="/0/%">
- <details key="start" value="404"/>
- <details key="end" value="423"/>
- <details key="line" value="0"/>
+ <eAnnotations source="positions.0" references="/0/cppOwnerPackageIncludePath">
+ <details key="start" value="476"/>
+ <details key="end" value="662"/>
+ <details key="line" value="8"/>
</eAnnotations>
- <eAnnotations source="positions.1" references="/0/CppClassIncludeClassDeclarationTemplate">
- <details key="start" value="424"/>
- <details key="end" value="605"/>
+ <eAnnotations source="positions.1" references="/0/cppOwnerPackageIncludePath/pkg">
+ <details key="start" value="517"/>
+ <details key="end" value="530"/>
<details key="line" value="8"/>
</eAnnotations>
- <eAnnotations source="positions.2" references="/0/CppClassIncludeClassDeclarationTemplate/%">
- <details key="start" value="498"/>
- <details key="end" value="506"/>
+ <eAnnotations source="positions.2" references="/0/cppOwnerPackageIncludePath/%">
+ <details key="start" value="543"/>
+ <details key="end" value="659"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.3" references="/0/CppClassIncludeClassDeclarationTemplate/%/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
- <details key="line" value="0"/>
- </eAnnotations>
- <eAnnotations source="positions.4" references="/0/CppClassIncludeClassDeclarationTemplate/%.1">
- <details key="start" value="508"/>
- <details key="end" value="509"/>
- <details key="line" value="10"/>
- </eAnnotations>
- <eAnnotations source="positions.5" references="/0/CppClassIncludeClassDeclarationTemplate/%.2">
- <details key="start" value="509"/>
- <details key="end" value="560"/>
- <details key="line" value="10"/>
- </eAnnotations>
- <eAnnotations source="positions.6" references="/0/CppClassIncludeClassDeclarationTemplate/%.2/%">
+ <eAnnotations source="positions.3" references="/0/cppOwnerPackageIncludePath/%/%">
<details key="start" value="546"/>
- <details key="end" value="555"/>
- <details key="line" value="10"/>
- </eAnnotations>
- <eAnnotations source="positions.7" references="/0/CppClassIncludeClassDeclarationTemplate/%.2/%.1">
- <details key="start" value="513"/>
- <details key="end" value="545"/>
+ <details key="end" value="594"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.8" references="/0/CppClassIncludeClassDeclarationTemplate/%.2/%.1/class">
- <details key="start" value="528"/>
- <details key="end" value="533"/>
+ <eAnnotations source="positions.4" references="/0/cppOwnerPackageIncludePath/%/%/%">
+ <details key="start" value="547"/>
+ <details key="end" value="560"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.9" references="/0/CppClassIncludeClassDeclarationTemplate/%.2/%.1/%">
- <details key="start" value="535"/>
- <details key="end" value="543"/>
+ <eAnnotations source="positions.5" references="/0/cppOwnerPackageIncludePath/%/%/%/pkg">
+ <details key="start" value="548"/>
+ <details key="end" value="551"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.10" references="/0/CppClassIncludeClassDeclarationTemplate/%.3">
- <details key="start" value="560"/>
- <details key="end" value="566"/>
- <details key="line" value="10"/>
- </eAnnotations>
- <eAnnotations source="positions.11" references="/0/CppClassIncludeClassDeclarationTemplate/%.4">
- <details key="start" value="567"/>
- <details key="end" value="577"/>
+ <eAnnotations source="positions.6" references="/0/cppOwnerPackageIncludePath/%/%/%/%">
+ <details key="start" value="555"/>
+ <details key="end" value="559"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.12" references="/0/CppClassIncludeClassDeclarationTemplate/%.4/class">
- <details key="start" value="567"/>
- <details key="end" value="572"/>
+ <eAnnotations source="positions.7" references="/0/cppOwnerPackageIncludePath/%/%/%.1">
+ <details key="start" value="565"/>
+ <details key="end" value="593"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.13" references="/0/CppClassIncludeClassDeclarationTemplate/%.5">
- <details key="start" value="579"/>
- <details key="end" value="581"/>
- <details key="line" value="10"/>
- </eAnnotations>
- <eAnnotations source="positions.14" references="/0/CppClassIncludeClassDeclarationTemplate/%.6">
- <details key="start" value="582"/>
- <details key="end" value="591"/>
+ <eAnnotations source="positions.8" references="/0/cppOwnerPackageIncludePath/%/%/%.1/%">
+ <details key="start" value="570"/>
+ <details key="end" value="592"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.15" references="/0/CppClassIncludeClassDeclarationTemplate/%.6/self">
+ <eAnnotations source="positions.9" references="/0/cppOwnerPackageIncludePath/%/%/%.1/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.16" references="/0/CppClassIncludeClassDeclarationTemplate/class">
- <details key="start" value="481"/>
- <details key="end" value="494"/>
- <details key="line" value="8"/>
+ <eAnnotations source="positions.10" references="/0/cppOwnerPackageIncludePath/%/%/%.1/%/%">
+ <details key="start" value="584"/>
+ <details key="end" value="591"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.17" references="/0/CppOwnerPackageIncludeDeclaration">
- <details key="start" value="608"/>
- <details key="end" value="915"/>
- <details key="line" value="15"/>
+ <eAnnotations source="positions.11" references="/0/cppOwnerPackageIncludePath/%/%.1">
+ <details key="start" value="601"/>
+ <details key="end" value="642"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.18" references="/0/CppOwnerPackageIncludeDeclaration/%">
- <details key="start" value="734"/>
- <details key="end" value="902"/>
- <details key="line" value="17"/>
+ <eAnnotations source="positions.12" references="/0/cppOwnerPackageIncludePath/%/%.1/%">
+ <details key="start" value="601"/>
+ <details key="end" value="635"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.19" references="/0/CppOwnerPackageIncludeDeclaration/%/%">
- <details key="start" value="788"/>
- <details key="end" value="861"/>
- <details key="line" value="18"/>
+ <eAnnotations source="positions.13" references="/0/cppOwnerPackageIncludePath/%/%.1/%/%">
+ <details key="start" value="601"/>
+ <details key="end" value="624"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.20" references="/0/CppOwnerPackageIncludeDeclaration/%/%.1">
- <details key="start" value="862"/>
- <details key="end" value="875"/>
+ <eAnnotations source="positions.14" references="/0/cppOwnerPackageIncludePath/%/%.1/%/%/%">
+ <details key="start" value="601"/>
+ <details key="end" value="614"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.21" references="/0/CppOwnerPackageIncludeDeclaration/%/%.1/self">
+ <eAnnotations source="positions.15" references="/0/cppOwnerPackageIncludePath/%/%.1/%/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.22" references="/0/CppOwnerPackageIncludeDeclaration/%/%.2">
- <details key="start" value="877"/>
- <details key="end" value="882"/>
- <details key="line" value="19"/>
- </eAnnotations>
- <eAnnotations source="positions.23" references="/0/CppOwnerPackageIncludeDeclaration/%/%.3">
- <details key="start" value="883"/>
- <details key="end" value="891"/>
+ <eAnnotations source="positions.16" references="/0/cppOwnerPackageIncludePath/%/%.1/%/%/%.1">
+ <details key="start" value="617"/>
+ <details key="end" value="624"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.24" references="/0/CppOwnerPackageIncludeDeclaration/%/%.3/pkg">
- <details key="start" value="883"/>
- <details key="end" value="886"/>
+ <eAnnotations source="positions.17" references="/0/cppOwnerPackageIncludePath/%/%.1/%/%.1">
+ <details key="start" value="627"/>
+ <details key="end" value="635"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.25" references="/0/CppOwnerPackageIncludeDeclaration/%/%.4">
- <details key="start" value="893"/>
- <details key="end" value="897"/>
- <details key="line" value="19"/>
- </eAnnotations>
- <eAnnotations source="positions.26" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5">
- <details key="start" value="738"/>
- <details key="end" value="786"/>
+ <eAnnotations source="positions.18" references="/0/cppOwnerPackageIncludePath/%/%.1/%/%.1/pkg">
+ <details key="start" value="627"/>
+ <details key="end" value="630"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.27" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5/%">
- <details key="start" value="739"/>
- <details key="end" value="752"/>
+ <eAnnotations source="positions.19" references="/0/cppOwnerPackageIncludePath/%/%.1/%.1">
+ <details key="start" value="638"/>
+ <details key="end" value="642"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.28" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5/%/pkg">
- <details key="start" value="740"/>
- <details key="end" value="743"/>
+ <eAnnotations source="positions.20" references="/0/cppOwnerPackageIncludePath/%/%.2">
+ <details key="start" value="649"/>
+ <details key="end" value="653"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.29" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5/%/%">
- <details key="start" value="747"/>
- <details key="end" value="751"/>
+ <eAnnotations source="positions.21" references="/0/CppClassAllIncludes">
+ <details key="start" value="664"/>
+ <details key="end" value="794"/>
+ <details key="line" value="16"/>
+ </eAnnotations>
+ <eAnnotations source="positions.22" references="/0/CppClassAllIncludes/class">
+ <details key="start" value="698"/>
+ <details key="end" value="716"/>
+ <details key="line" value="16"/>
+ </eAnnotations>
+ <eAnnotations source="positions.23" references="/0/CppClassAllIncludes/%">
+ <details key="start" value="740"/>
+ <details key="end" value="791"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.30" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5/%.1">
- <details key="start" value="757"/>
- <details key="end" value="785"/>
+ <eAnnotations source="positions.24" references="/0/CppClassAllIncludes/%/class">
+ <details key="start" value="761"/>
+ <details key="end" value="766"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.31" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5/%.1/%">
- <details key="start" value="762"/>
- <details key="end" value="784"/>
+ <eAnnotations source="positions.25" references="/0/CppClassAllIncludes/%/%">
+ <details key="start" value="768"/>
+ <details key="end" value="789"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.32" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5/%.1/%/self">
+ <eAnnotations source="positions.26" references="/0/CppClassAllIncludes/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.33" references="/0/CppOwnerPackageIncludeDeclaration/%/%.5/%.1/%/%">
- <details key="start" value="776"/>
- <details key="end" value="783"/>
- <details key="line" value="0"/>
+ <eAnnotations source="positions.27" references="/0/CppClassAllIncludesDeclarationBody">
+ <details key="start" value="796"/>
+ <details key="end" value="945"/>
+ <details key="line" value="20"/>
</eAnnotations>
- <eAnnotations source="positions.34" references="/0/CppOwnerPackageIncludeDeclaration/pkg">
- <details key="start" value="659"/>
- <details key="end" value="672"/>
- <details key="line" value="15"/>
+ <eAnnotations source="positions.28" references="/0/CppClassAllIncludesDeclarationBody/class">
+ <details key="start" value="845"/>
+ <details key="end" value="863"/>
+ <details key="line" value="20"/>
</eAnnotations>
- <eAnnotations source="positions.35" references="/0/CppClassAllIncludesDeclaration">
- <details key="start" value="918"/>
- <details key="end" value="1055"/>
- <details key="line" value="24"/>
- </eAnnotations>
- <eAnnotations source="positions.36" references="/0/CppClassAllIncludesDeclaration/%">
- <details key="start" value="988"/>
- <details key="end" value="1041"/>
+ <eAnnotations source="positions.29" references="/0/CppClassAllIncludesDeclarationBody/%">
+ <details key="start" value="887"/>
+ <details key="end" value="942"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.37" references="/0/CppClassAllIncludesDeclaration/%/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.30" references="/0/CppClassAllIncludesDeclarationBody/%/class">
+ <details key="start" value="908"/>
+ <details key="end" value="913"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.38" references="/0/CppClassAllIncludesDeclaration/%/%">
- <details key="start" value="1019"/>
- <details key="end" value="1040"/>
+ <eAnnotations source="positions.31" references="/0/CppClassAllIncludesDeclarationBody/%/%">
+ <details key="start" value="915"/>
+ <details key="end" value="940"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.39" references="/0/CppClassAllIncludesDeclaration/%/%/self">
+ <eAnnotations source="positions.32" references="/0/CppClassAllIncludesDeclarationBody/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.40" references="/0/CppClassAllIncludesDeclaration/class">
- <details key="start" value="966"/>
- <details key="end" value="984"/>
+ <eAnnotations source="positions.33" references="/0/cppClassAllIncludes">
+ <details key="start" value="947"/>
+ <details key="end" value="1484"/>
<details key="line" value="24"/>
</eAnnotations>
- <eAnnotations source="positions.41" references="/0/CppClassAllIncludesDeclarationBody">
- <details key="start" value="1057"/>
- <details key="end" value="1202"/>
- <details key="line" value="28"/>
+ <eAnnotations source="positions.34" references="/0/cppClassAllIncludes/class">
+ <details key="start" value="982"/>
+ <details key="end" value="1000"/>
+ <details key="line" value="24"/>
</eAnnotations>
- <eAnnotations source="positions.42" references="/0/CppClassAllIncludesDeclarationBody/%">
- <details key="start" value="1131"/>
- <details key="end" value="1188"/>
- <details key="line" value="0"/>
+ <eAnnotations source="positions.35" references="/0/cppClassAllIncludes/list">
+ <details key="start" value="1002"/>
+ <details key="end" value="1029"/>
+ <details key="line" value="24"/>
</eAnnotations>
- <eAnnotations source="positions.43" references="/0/CppClassAllIncludesDeclarationBody/%/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.36" references="/0/cppClassAllIncludes/reject">
+ <details key="start" value="1052"/>
+ <details key="end" value="1481"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.44" references="/0/CppClassAllIncludesDeclarationBody/%/%">
- <details key="start" value="1162"/>
- <details key="end" value="1187"/>
+ <eAnnotations source="positions.37" references="/0/cppClassAllIncludes/reject/%">
+ <details key="start" value="1052"/>
+ <details key="end" value="1453"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.45" references="/0/CppClassAllIncludesDeclarationBody/%/%/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.38" references="/0/cppClassAllIncludes/reject/%/collect">
+ <details key="start" value="1052"/>
+ <details key="end" value="1442"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.46" references="/0/CppClassAllIncludesDeclarationBody/class">
- <details key="start" value="1109"/>
- <details key="end" value="1127"/>
- <details key="line" value="28"/>
- </eAnnotations>
- <eAnnotations source="positions.47" references="/0/CppClassAllIncludesDeclaration.1">
- <details key="start" value="1204"/>
- <details key="end" value="2122"/>
- <details key="line" value="32"/>
- </eAnnotations>
- <eAnnotations source="positions.48" references="/0/CppClassAllIncludesDeclaration.1/%">
- <details key="start" value="1303"/>
- <details key="end" value="2110"/>
- <details key="line" value="33"/>
+ <eAnnotations source="positions.39" references="/0/cppClassAllIncludes/reject/%/collect/list">
+ <details key="start" value="1052"/>
+ <details key="end" value="1056"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.49" references="/0/CppClassAllIncludesDeclaration.1/%/%">
- <details key="start" value="1498"/>
- <details key="end" value="2103"/>
- <details key="line" value="36"/>
+ <eAnnotations source="positions.40" references="/0/cppClassAllIncludes/reject/%/collect/%">
+ <details key="start" value="1073"/>
+ <details key="end" value="1440"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.50" references="/0/CppClassAllIncludesDeclaration.1/%/%/%">
- <details key="start" value="1582"/>
- <details key="end" value="2096"/>
- <details key="line" value="37"/>
+ <eAnnotations source="positions.41" references="/0/cppClassAllIncludes/reject/%/collect/%/%">
+ <details key="start" value="1075"/>
+ <details key="end" value="1152"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.51" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%">
- <details key="start" value="1855"/>
- <details key="end" value="1988"/>
- <details key="line" value="40"/>
+ <eAnnotations source="positions.42" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%">
+ <details key="start" value="1076"/>
+ <details key="end" value="1124"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.52" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%">
- <details key="start" value="1914"/>
- <details key="end" value="1977"/>
+ <eAnnotations source="positions.43" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%/%">
+ <details key="start" value="1076"/>
+ <details key="end" value="1089"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.53" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%/%">
- <details key="start" value="1914"/>
- <details key="end" value="1941"/>
+ <eAnnotations source="positions.44" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%/%/cl">
+ <details key="start" value="1077"/>
+ <details key="end" value="1079"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.54" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%/%/%">
- <details key="start" value="1914"/>
- <details key="end" value="1922"/>
+ <eAnnotations source="positions.45" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%/%/class">
+ <details key="start" value="1083"/>
+ <details key="end" value="1088"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.55" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%/%/%/cl">
- <details key="start" value="1914"/>
- <details key="end" value="1916"/>
+ <eAnnotations source="positions.46" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%/%.1">
+ <details key="start" value="1094"/>
+ <details key="end" value="1124"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.56" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%/%/%.1">
- <details key="start" value="1933"/>
- <details key="end" value="1940"/>
+ <eAnnotations source="positions.47" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%/%.1/%">
+ <details key="start" value="1099"/>
+ <details key="end" value="1123"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.57" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.1">
- <details key="start" value="1979"/>
- <details key="end" value="1980"/>
- <details key="line" value="42"/>
+ <eAnnotations source="positions.48" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%/%.1/%/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.58" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2">
- <details key="start" value="1859"/>
- <details key="end" value="1911"/>
+ <eAnnotations source="positions.49" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%/%.1/%/%">
+ <details key="start" value="1113"/>
+ <details key="end" value="1122"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.59" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%">
- <details key="start" value="1860"/>
- <details key="end" value="1876"/>
+ <eAnnotations source="positions.50" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%.1">
+ <details key="start" value="1128"/>
+ <details key="end" value="1151"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.60" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%/%">
- <details key="start" value="1860"/>
- <details key="end" value="1868"/>
+ <eAnnotations source="positions.51" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%.1/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.61" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%/%/cl">
- <details key="start" value="1860"/>
- <details key="end" value="1862"/>
+ <eAnnotations source="positions.52" references="/0/cppClassAllIncludes/reject/%/collect/%/%/%.1/%">
+ <details key="start" value="1142"/>
+ <details key="end" value="1150"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.62" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%/%.1">
- <details key="start" value="1872"/>
- <details key="end" value="1876"/>
+ <eAnnotations source="positions.53" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1">
+ <details key="start" value="1160"/>
+ <details key="end" value="1420"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.63" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%.1">
- <details key="start" value="1881"/>
- <details key="end" value="1910"/>
+ <eAnnotations source="positions.54" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%">
+ <details key="start" value="1162"/>
+ <details key="end" value="1224"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.64" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%.1/%">
- <details key="start" value="1881"/>
- <details key="end" value="1889"/>
+ <eAnnotations source="positions.55" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%/%">
+ <details key="start" value="1163"/>
+ <details key="end" value="1190"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.65" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%.1/%/cl">
- <details key="start" value="1881"/>
- <details key="end" value="1883"/>
+ <eAnnotations source="positions.56" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%/%/cl">
+ <details key="start" value="1163"/>
+ <details key="end" value="1165"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.66" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%/%.2/%.1/%.1">
- <details key="start" value="1902"/>
- <details key="end" value="1909"/>
+ <eAnnotations source="positions.57" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%/%/%">
+ <details key="start" value="1178"/>
+ <details key="end" value="1189"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.67" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.1">
- <details key="start" value="1585"/>
- <details key="end" value="1641"/>
+ <eAnnotations source="positions.58" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%/%.1">
+ <details key="start" value="1194"/>
+ <details key="end" value="1223"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.68" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.1/%">
- <details key="start" value="1586"/>
- <details key="end" value="1610"/>
+ <eAnnotations source="positions.59" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%/%.1/cl">
+ <details key="start" value="1194"/>
+ <details key="end" value="1196"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.69" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.1/%/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.60" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%/%.1/%">
+ <details key="start" value="1209"/>
+ <details key="end" value="1222"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.70" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.1/%/%">
- <details key="start" value="1598"/>
- <details key="end" value="1609"/>
+ <eAnnotations source="positions.61" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1">
+ <details key="start" value="1233"/>
+ <details key="end" value="1380"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.71" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.1/%.1">
- <details key="start" value="1614"/>
- <details key="end" value="1640"/>
+ <eAnnotations source="positions.62" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%">
+ <details key="start" value="1236"/>
+ <details key="end" value="1288"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.72" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.1/%.1/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.63" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%">
+ <details key="start" value="1237"/>
+ <details key="end" value="1253"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.73" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.1/%.1/%">
- <details key="start" value="1626"/>
- <details key="end" value="1639"/>
+ <eAnnotations source="positions.64" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%/%">
+ <details key="start" value="1237"/>
+ <details key="end" value="1245"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.74" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.2">
- <details key="start" value="1991"/>
- <details key="end" value="2091"/>
- <details key="line" value="43"/>
+ <eAnnotations source="positions.65" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%/%/cl">
+ <details key="start" value="1237"/>
+ <details key="end" value="1239"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.75" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.2/%">
- <details key="start" value="2058"/>
- <details key="end" value="2086"/>
+ <eAnnotations source="positions.66" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%/%.1">
+ <details key="start" value="1249"/>
+ <details key="end" value="1253"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.76" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.2/%/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.67" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%.1">
+ <details key="start" value="1258"/>
+ <details key="end" value="1287"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.77" references="/0/CppClassAllIncludesDeclaration.1/%/%/%/%.2/%.1">
- <details key="start" value="2088"/>
- <details key="end" value="2089"/>
- <details key="line" value="46"/>
+ <eAnnotations source="positions.68" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%.1/%">
+ <details key="start" value="1258"/>
+ <details key="end" value="1266"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.78" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1">
- <details key="start" value="1501"/>
- <details key="end" value="1578"/>
+ <eAnnotations source="positions.69" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%.1/%/cl">
+ <details key="start" value="1258"/>
+ <details key="end" value="1260"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.79" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%">
- <details key="start" value="1502"/>
- <details key="end" value="1550"/>
+ <eAnnotations source="positions.70" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%/%.1/%.1">
+ <details key="start" value="1279"/>
+ <details key="end" value="1286"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.80" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%/%">
- <details key="start" value="1502"/>
- <details key="end" value="1515"/>
+ <eAnnotations source="positions.71" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%.1">
+ <details key="start" value="1298"/>
+ <details key="end" value="1354"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.81" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%/%/cl">
- <details key="start" value="1503"/>
- <details key="end" value="1505"/>
+ <eAnnotations source="positions.72" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%.1/%">
+ <details key="start" value="1298"/>
+ <details key="end" value="1325"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.82" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%/%/class">
- <details key="start" value="1509"/>
- <details key="end" value="1514"/>
+ <eAnnotations source="positions.73" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%.1/%/%">
+ <details key="start" value="1298"/>
+ <details key="end" value="1306"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.83" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%/%.1">
- <details key="start" value="1520"/>
- <details key="end" value="1550"/>
+ <eAnnotations source="positions.74" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%.1/%/%/cl">
+ <details key="start" value="1298"/>
+ <details key="end" value="1300"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.84" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%/%.1/%">
- <details key="start" value="1525"/>
- <details key="end" value="1549"/>
+ <eAnnotations source="positions.75" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%.1/%/%.1">
+ <details key="start" value="1317"/>
+ <details key="end" value="1324"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.85" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%/%.1/%/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.76" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.1/%.2">
+ <details key="start" value="1367"/>
+ <details key="end" value="1371"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.86" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%/%.1/%/%">
- <details key="start" value="1539"/>
- <details key="end" value="1548"/>
+ <eAnnotations source="positions.77" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.2">
+ <details key="start" value="1391"/>
+ <details key="end" value="1412"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.87" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%.1">
- <details key="start" value="1554"/>
- <details key="end" value="1577"/>
+ <eAnnotations source="positions.78" references="/0/cppClassAllIncludes/reject/%/collect/%/%.1/%.2/cl">
+ <details key="start" value="1391"/>
+ <details key="end" value="1393"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.88" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%.1/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.79" references="/0/cppClassAllIncludes/reject/%/collect/%/%.2">
+ <details key="start" value="1429"/>
+ <details key="end" value="1433"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.89" references="/0/CppClassAllIncludesDeclaration.1/%/%/%.1/%.1/%">
- <details key="start" value="1568"/>
- <details key="end" value="1576"/>
+ <eAnnotations source="positions.80" references="/0/cppClassAllIncludes/reject/%/collect/cl">
+ <details key="start" value="1067"/>
+ <details key="end" value="1069"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.90" references="/0/CppClassAllIncludesDeclaration.1/%/cl">
- <details key="start" value="1309"/>
- <details key="end" value="1324"/>
- <details key="line" value="33"/>
+ <eAnnotations source="positions.81" references="/0/cppClassAllIncludes/reject/%.1">
+ <details key="start" value="1469"/>
+ <details key="end" value="1479"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.91" references="/0/CppClassAllIncludesDeclaration.1/%/list">
- <details key="start" value="1327"/>
- <details key="end" value="1331"/>
+ <eAnnotations source="positions.82" references="/0/cppClassAllIncludes/reject/%.1/str">
+ <details key="start" value="1469"/>
+ <details key="end" value="1472"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.92" references="/0/CppClassAllIncludesDeclaration.1/class">
- <details key="start" value="1252"/>
- <details key="end" value="1270"/>
- <details key="line" value="32"/>
+ <eAnnotations source="positions.83" references="/0/cppClassAllIncludes/reject/%.1/%">
+ <details key="start" value="1475"/>
+ <details key="end" value="1479"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.93" references="/0/CppClassAllIncludesDeclaration.1/list">
- <details key="start" value="1272"/>
- <details key="end" value="1299"/>
- <details key="line" value="32"/>
+ <eAnnotations source="positions.84" references="/0/cppClassAllIncludes/reject/str">
+ <details key="start" value="1463"/>
+ <details key="end" value="1466"/>
+ <details key="line" value="0"/>
</eAnnotations>
</ecore:EAnnotation>
</xmi:XMI>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.mtl
index e1bffe7..e94ed06 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeClassDeclaration.mtl
@@ -2,48 +2,39 @@
[import org::eclipse::papyrus::acceleo::GenUtils/]
[import org::eclipse::papyrus::cpp::codegen::utils::CppGenUtils/]
[import org::eclipse::papyrus::cpp::codegen::utils::ClassUtils/]
+[import org::eclipse::papyrus::cpp::codegen::acceleo::CppIncludeUtils/]
[import org::eclipse::papyrus::cpp::codegen::acceleo::util::clazz::CppClassIncludeDeclaration/]
-[comment USED??? /]
-[template public CppClassIncludeClassDeclarationTemplate(class : Class)]
-[openNS()/]
-[if (hasStereotype(class, Template))]template [/if]class [class.name/];
-[closeNS()/]
-[/template]
+[query public cppOwnerPackageIncludePath(pkg : Package) : String =
+if ((pkg <> null) and (not hasStereotype(CppRoot))) then
+ getFullPath() + '/Pkg_' + pkg.name + '.h'
+else
+ null
+endif
+/]
+[query public CppClassAllIncludes(class : Classifier) : Sequence(String) =
+ cppClassAllIncludes( class, includedClassifiers() )
+/]
-[template public CppOwnerPackageIncludeDeclaration(pkg : Package)]
-[comment if currentPkg is not root it is referenced here/]
-[if ((pkg <> null) and (not hasStereotype(CppRoot)))]
-/* Owner package header include */
-#include <[getFullPath()/]/Pkg_[pkg.name/].h>
-[/if]
-[/template]
+[query public CppClassAllIncludesDeclarationBody(class : Classifier) : Sequence(String) =
+ cppClassAllIncludes( class, getTypesViaDependencies() )
+/]
-
-[template public CppClassAllIncludesDeclaration(class : Classifier)]
-[CppClassAllIncludesDeclaration(includedClassifiers())/]
-[/template]
-
-[template public CppClassAllIncludesDeclarationBody(class : Classifier)]
-[CppClassAllIncludesDeclaration(getTypesViaDependencies())/]
-[/template]
-
-[template public CppClassAllIncludesDeclaration(class : Classifier, list : Sequence(Classifier) )]
-[for (cl : Classifier | list)]
- [comment Only add include if this is not for the current class and if it does not have the stereotype "NoCodeGen", unless
- it has stereotype "C_Cpp:External"/]
- [if((cl <> class) and (not hasStereotype(NoCodeGen)) or hasStereotype(External))]
- [if(oclIsKindOf(Enumeration) or oclIsKindOf(PrimitiveType))]
- [comment Enumeration is not defined in a separate file, but in the package that owns it
- => include the owning package (might be a duplicate input, if owning package is also the owner of current class/]
- [if (cl.owner <> null and cl.owner.oclIsKindOf(Package))]
-[cl.owner.oclAsType(Package).CppOwnerPackageIncludeDeclaration()/]
- [/if]
- [else]
- [comment include file associated with the classifier/]
-[CppClassIncludeDeclaration()/]
- [/if]
- [/if]
-[/for]
-[/template]
+[query private cppClassAllIncludes(class : Classifier, list : Sequence(Classifier)) : Sequence(String) =
+list->collect( cl |
+ if((cl <> class) and (not hasStereotype(NoCodeGen)) or hasStereotype(External)) then
+ if(cl.oclIsKindOf(Enumeration) or cl.oclIsKindOf(PrimitiveType)) then
+ if (cl.owner <> null and cl.owner.oclIsKindOf(Package)) then
+ cl.owner.oclAsType(Package).cppOwnerPackageIncludePath()
+ else
+ null
+ endif
+ else
+ cl.cppClassIncludes()
+ endif
+ else
+ null
+ endif
+)->flatten()->reject( str | str = null )
+/]
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.emtl
index ad8af1f..8684b1d 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.emtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.emtl
@@ -8,6 +8,7 @@
<takesTypesFrom href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
</input>
<imports href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0"/>
+ <imports href="../../CppIncludeUtils.emtl#/0"/>
<imports href="../../../preferences/CppCodeGenUtils.emtl#/0"/>
<ownedModuleElement xsi:type="mtl:Query" name="includeName" visibility="Public">
<parameter name="ne">
@@ -18,10 +19,10 @@
<condition xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/5">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/Template">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/Template">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Template"/>
</argument>
</condition>
@@ -32,14 +33,14 @@
<source xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getApplication"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/5">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/Template">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/Template">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Template"/>
</argument>
</source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/Template">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/Template">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Template"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
@@ -51,10 +52,10 @@
<condition xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotype.1"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/5">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/External">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/External">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//External"/>
</argument>
</condition>
@@ -65,14 +66,14 @@
<source xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getApplication"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/5">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/External">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/External">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//External"/>
</argument>
</source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/External">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/External">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//External"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
@@ -92,7 +93,7 @@
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
- <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/5">
+ <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/5.0.0/UML#//Element/getNearestPackage"/>
@@ -117,7 +118,7 @@
<argument xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../../../preferences/CppCodeGenUtils.emtl#/0/getHeaderSuffix"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/5">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
</argument>
@@ -127,60 +128,69 @@
<type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Comment">
- <body startPosition="644" endPosition="727" value=" TODO: original code did not use nearest package, if stereotype CppRoot was applied"/>
+ <body startPosition="716" endPosition="799" value=" TODO: original code did not use nearest package, if stereotype CppRoot was applied"/>
</ownedModuleElement>
- <ownedModuleElement xsi:type="mtl:Template" name="CppClassIncludeDeclaration" visibility="Public">
- <body xsi:type="mtl:IfBlock">
- <body xsi:type="mtl:ForBlock">
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="#include &lt;"/>
- <body xsi:type="ocl.ecore:VariableExp" name="include" referredVariable="/0/CppClassIncludeDeclaration/%/%/include.1">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">&#xA;"/>
- <loopVariable name="include">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </loopVariable>
- <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/11/Set(null)">
- <source xsi:type="ocl.ecore:OperationCallExp">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary"/>
- <source xsi:type="mtl:QueryInvocation">
- <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
- <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getApplicationTree"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
- </argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/ExternLibrary">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary"/>
- </argument>
- </source>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/ExternLibrary">
- <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary"/>
- </argument>
- <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
- </source>
- <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary/includes"/>
- </iterSet>
- </body>
- <ifExpr xsi:type="mtl:QueryInvocation">
+ <ownedModuleElement xsi:type="mtl:Query" name="cppClassIncludes" visibility="Public" type="/3/Sequence(String)">
+ <parameter name="ne">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </parameter>
+ <expression xsi:type="ocl.ecore:IfExp">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ <condition xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/hasStereotypeTree"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/10">
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/9">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</argument>
- <argument xsi:type="ocl.ecore:TypeExp" eType="/4/ExternLibrary">
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/ExternLibrary">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary"/>
</argument>
- </ifExpr>
- <else>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="#include &lt;"/>
- <body xsi:type="mtl:QueryInvocation" definition="/0/includeName">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- <argument xsi:type="ocl.ecore:VariableExp" name="ne" referredVariable="/0/CppClassIncludeDeclaration/ne">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </condition>
+ <thenExpression xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(null)">
+ <source xsi:type="ocl.ecore:OperationCallExp">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary"/>
+ <source xsi:type="mtl:QueryInvocation">
+ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
+ <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getApplicationTree"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/9">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </argument>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/ExternLibrary">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary"/>
+ </argument>
+ </source>
+ <argument xsi:type="ocl.ecore:TypeExp" eType="/5/ExternLibrary">
+ <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary"/>
</argument>
- </body>
- <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">&#xA;"/>
- </else>
+ <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
+ </source>
+ <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/C_Cpp/1#//ExternLibrary/includes"/>
+ </thenExpression>
+ <elseExpression xsi:type="mtl:QueryInvocation" definition="/0/includeName">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="ne" referredVariable="/0/cppClassIncludes/ne">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </argument>
+ </elseExpression>
+ </expression>
+ </ownedModuleElement>
+ <ownedModuleElement xsi:type="mtl:Template" name="CppClassIncludeDeclaration" visibility="Public">
+ <body xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/3/Sequence(String)">
+ <source xsi:type="mtl:QueryInvocation" eType="/3/Sequence(String)" definition="/0/cppClassIncludes">
+ <argument xsi:type="ocl.ecore:VariableExp" name="ne" referredVariable="/0/CppClassIncludeDeclaration/ne">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </argument>
+ </source>
+ <body xsi:type="mtl:TemplateInvocation">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <definition href="../../CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ <argument xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/CppClassIncludeDeclaration/collect/temp1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </argument>
+ </body>
+ <iterator xsi:type="ocl.ecore:Variable" name="temp1">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </iterator>
</body>
<parameter name="ne">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
@@ -224,6 +234,15 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</eParameters>
</eOperations>
+ <eOperations name="cppClassIncludes" eType="/3/Sequence(String)">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL" references="/0/cppClassIncludes"/>
+ <eParameters name="ne">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ </eParameters>
+ </eOperations>
<eOperations name="CppClassIncludeDeclaration">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
@@ -306,6 +325,18 @@
<eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
</eParameters>
</eOperations>
+ <eOperations name="IncludeDirective">
+ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
+ <contents xsi:type="ocl.ecore:Constraint"/>
+ </eAnnotations>
+ <eAnnotations source="MTL">
+ <references href="../../CppIncludeUtils.emtl#/0/IncludeDirective"/>
+ </eAnnotations>
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ <eParameters name="path">
+ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eParameters>
+ </eOperations>
<eOperations name="getHeaderSuffix">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
@@ -385,6 +416,14 @@
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</ocl.ecore:Variable>
+ <ecore:EPackage name="collections">
+ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(String)" instanceClassName="java.util.List">
+ <elementType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(null)" instanceClassName="java.util.Set">
+ <elementType xsi:type="ecore:EDataType" href="platform:/resource/org.eclipse.papyrus.cpp.profile/profiles/types.ecore#//String"/>
+ </eClassifiers>
+ </ecore:EPackage>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</ocl.ecore:Variable>
@@ -409,19 +448,11 @@
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</ocl.ecore:Variable>
- <ecore:EPackage name="collections">
- <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(null)" instanceClassName="java.util.Set">
- <elementType xsi:type="ecore:EDataType" href="platform:/resource/org.eclipse.papyrus.cpp.profile/profiles/types.ecore#//String"/>
- </eClassifiers>
- </ecore:EPackage>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</ocl.ecore:Variable>
@@ -429,14 +460,8 @@
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
- </ocl.ecore:Variable>
- <ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</ocl.ecore:Variable>
- <ocl.ecore:Variable name="i">
- <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
- </ocl.ecore:Variable>
<ocl.ecore:Variable name="self">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement"/>
</ocl.ecore:Variable>
@@ -445,23 +470,23 @@
</ocl.ecore:Variable>
<ecore:EAnnotation source="positions">
<eAnnotations source="positions.0" references="/0/includeName">
- <details key="start" value="249"/>
- <details key="end" value="634"/>
- <details key="line" value="6"/>
+ <details key="start" value="321"/>
+ <details key="end" value="706"/>
+ <details key="line" value="7"/>
</eAnnotations>
<eAnnotations source="positions.1" references="/0/includeName/ne">
- <details key="start" value="275"/>
- <details key="end" value="292"/>
- <details key="line" value="6"/>
+ <details key="start" value="347"/>
+ <details key="end" value="364"/>
+ <details key="line" value="7"/>
</eAnnotations>
<eAnnotations source="positions.2" references="/0/includeName/%">
- <details key="start" value="305"/>
- <details key="end" value="631"/>
+ <details key="start" value="377"/>
+ <details key="end" value="703"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.3" references="/0/includeName/%/%">
- <details key="start" value="308"/>
- <details key="end" value="333"/>
+ <details key="start" value="380"/>
+ <details key="end" value="405"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.4" references="/0/includeName/%/%/self">
@@ -470,23 +495,23 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.5" references="/0/includeName/%/%/%">
- <details key="start" value="323"/>
- <details key="end" value="331"/>
+ <details key="start" value="395"/>
+ <details key="end" value="403"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.6" references="/0/includeName/%/%.1">
- <details key="start" value="340"/>
- <details key="end" value="396"/>
+ <details key="start" value="412"/>
+ <details key="end" value="468"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.7" references="/0/includeName/%/%.1/%">
- <details key="start" value="340"/>
- <details key="end" value="384"/>
+ <details key="start" value="412"/>
+ <details key="end" value="456"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.8" references="/0/includeName/%/%.1/%/%">
- <details key="start" value="340"/>
- <details key="end" value="364"/>
+ <details key="start" value="412"/>
+ <details key="end" value="436"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.9" references="/0/includeName/%/%.1/%/%/self">
@@ -495,23 +520,23 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.10" references="/0/includeName/%/%.1/%/%/%">
- <details key="start" value="355"/>
- <details key="end" value="363"/>
+ <details key="start" value="427"/>
+ <details key="end" value="435"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.11" references="/0/includeName/%/%.1/%/%.1">
- <details key="start" value="375"/>
- <details key="end" value="383"/>
+ <details key="start" value="447"/>
+ <details key="end" value="455"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.12" references="/0/includeName/%/%.2">
- <details key="start" value="403"/>
- <details key="end" value="625"/>
+ <details key="start" value="475"/>
+ <details key="end" value="697"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.13" references="/0/includeName/%/%.2/%">
- <details key="start" value="406"/>
- <details key="end" value="431"/>
+ <details key="start" value="478"/>
+ <details key="end" value="503"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.14" references="/0/includeName/%/%.2/%/self">
@@ -520,23 +545,23 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.15" references="/0/includeName/%/%.2/%/%">
- <details key="start" value="421"/>
- <details key="end" value="429"/>
+ <details key="start" value="493"/>
+ <details key="end" value="501"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.16" references="/0/includeName/%/%.2/%.1">
- <details key="start" value="437"/>
- <details key="end" value="486"/>
+ <details key="start" value="509"/>
+ <details key="end" value="558"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.17" references="/0/includeName/%/%.2/%.1/%">
- <details key="start" value="437"/>
- <details key="end" value="481"/>
+ <details key="start" value="509"/>
+ <details key="end" value="553"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.18" references="/0/includeName/%/%.2/%.1/%/%">
- <details key="start" value="437"/>
- <details key="end" value="461"/>
+ <details key="start" value="509"/>
+ <details key="end" value="533"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.19" references="/0/includeName/%/%.2/%.1/%/%/self">
@@ -545,43 +570,43 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.20" references="/0/includeName/%/%.2/%.1/%/%/%">
- <details key="start" value="452"/>
- <details key="end" value="460"/>
+ <details key="start" value="524"/>
+ <details key="end" value="532"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.21" references="/0/includeName/%/%.2/%.1/%/%.1">
- <details key="start" value="472"/>
- <details key="end" value="480"/>
+ <details key="start" value="544"/>
+ <details key="end" value="552"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.22" references="/0/includeName/%/%.2/%.2">
- <details key="start" value="543"/>
- <details key="end" value="618"/>
+ <details key="start" value="615"/>
+ <details key="end" value="690"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.23" references="/0/includeName/%/%.2/%.2/%">
- <details key="start" value="543"/>
- <details key="end" value="598"/>
+ <details key="start" value="615"/>
+ <details key="end" value="670"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.24" references="/0/includeName/%/%.2/%.2/%/%">
- <details key="start" value="543"/>
- <details key="end" value="592"/>
+ <details key="start" value="615"/>
+ <details key="end" value="664"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.25" references="/0/includeName/%/%.2/%.2/%/%/%">
- <details key="start" value="543"/>
- <details key="end" value="582"/>
+ <details key="start" value="615"/>
+ <details key="end" value="654"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.26" references="/0/includeName/%/%.2/%.2/%/%/%/%">
- <details key="start" value="543"/>
- <details key="end" value="576"/>
+ <details key="start" value="615"/>
+ <details key="end" value="648"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.27" references="/0/includeName/%/%.2/%.2/%/%/%/%/%">
- <details key="start" value="543"/>
- <details key="end" value="562"/>
+ <details key="start" value="615"/>
+ <details key="end" value="634"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.28" references="/0/includeName/%/%.2/%.2/%/%/%/%/%/self">
@@ -590,28 +615,28 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.29" references="/0/includeName/%/%.2/%.2/%/%/%/%.1">
- <details key="start" value="579"/>
- <details key="end" value="582"/>
+ <details key="start" value="651"/>
+ <details key="end" value="654"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.30" references="/0/includeName/%/%.2/%.2/%/%/%.1">
- <details key="start" value="585"/>
- <details key="end" value="592"/>
+ <details key="start" value="657"/>
+ <details key="end" value="664"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.31" references="/0/includeName/%/%.2/%.2/%/%/%.1/ne">
- <details key="start" value="585"/>
- <details key="end" value="587"/>
+ <details key="start" value="657"/>
+ <details key="end" value="659"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.32" references="/0/includeName/%/%.2/%.2/%/%.1">
- <details key="start" value="595"/>
- <details key="end" value="598"/>
+ <details key="start" value="667"/>
+ <details key="end" value="670"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.33" references="/0/includeName/%/%.2/%.2/%.1">
- <details key="start" value="601"/>
- <details key="end" value="618"/>
+ <details key="start" value="673"/>
+ <details key="end" value="690"/>
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.34" references="/0/includeName/%/%.2/%.2/%.1/self">
@@ -620,119 +645,119 @@
<details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.35" references="/0/%">
- <details key="start" value="636"/>
- <details key="end" value="729"/>
+ <details key="start" value="708"/>
+ <details key="end" value="801"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.36" references="/0/CppClassIncludeDeclaration">
- <details key="start" value="730"/>
+ <eAnnotations source="positions.36" references="/0/cppClassIncludes">
+ <details key="start" value="802"/>
<details key="end" value="1016"/>
- <details key="line" value="19"/>
- </eAnnotations>
- <eAnnotations source="positions.37" references="/0/CppClassIncludeDeclaration/%">
- <details key="start" value="794"/>
- <details key="end" value="1004"/>
<details key="line" value="20"/>
</eAnnotations>
- <eAnnotations source="positions.38" references="/0/CppClassIncludeDeclaration/%/%">
- <details key="start" value="835"/>
- <details key="end" value="960"/>
- <details key="line" value="21"/>
+ <eAnnotations source="positions.37" references="/0/cppClassIncludes/ne">
+ <details key="start" value="833"/>
+ <details key="end" value="850"/>
+ <details key="line" value="20"/>
</eAnnotations>
- <eAnnotations source="positions.39" references="/0/CppClassIncludeDeclaration/%/%/%">
- <details key="start" value="931"/>
- <details key="end" value="941"/>
- <details key="line" value="21"/>
+ <eAnnotations source="positions.38" references="/0/cppClassIncludes/%">
+ <details key="start" value="873"/>
+ <details key="end" value="1013"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.40" references="/0/CppClassIncludeDeclaration/%/%/include">
- <details key="start" value="942"/>
- <details key="end" value="949"/>
+ <eAnnotations source="positions.39" references="/0/cppClassIncludes/%/%">
+ <details key="start" value="876"/>
+ <details key="end" value="910"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.41" references="/0/CppClassIncludeDeclaration/%/%/%.1">
- <details key="start" value="951"/>
- <details key="end" value="953"/>
- <details key="line" value="22"/>
+ <eAnnotations source="positions.40" references="/0/cppClassIncludes/%/%/self">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.42" references="/0/CppClassIncludeDeclaration/%/%/include.1">
- <details key="start" value="841"/>
- <details key="end" value="857"/>
- <details key="line" value="21"/>
+ <eAnnotations source="positions.41" references="/0/cppClassIncludes/%/%/%">
+ <details key="start" value="895"/>
+ <details key="end" value="908"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.43" references="/0/CppClassIncludeDeclaration/%/%/%.2">
- <details key="start" value="860"/>
- <details key="end" value="927"/>
+ <eAnnotations source="positions.42" references="/0/cppClassIncludes/%/%.1">
+ <details key="start" value="917"/>
+ <details key="end" value="984"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.44" references="/0/CppClassIncludeDeclaration/%/%/%.2/%">
- <details key="start" value="860"/>
- <details key="end" value="918"/>
+ <eAnnotations source="positions.43" references="/0/cppClassIncludes/%/%.1/%">
+ <details key="start" value="917"/>
+ <details key="end" value="975"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.45" references="/0/CppClassIncludeDeclaration/%/%/%.2/%/%">
- <details key="start" value="860"/>
- <details key="end" value="893"/>
+ <eAnnotations source="positions.44" references="/0/cppClassIncludes/%/%.1/%/%">
+ <details key="start" value="917"/>
+ <details key="end" value="950"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.46" references="/0/CppClassIncludeDeclaration/%/%/%.2/%/%/self">
+ <eAnnotations source="positions.45" references="/0/cppClassIncludes/%/%.1/%/%/self">
<details key="start" value="-1"/>
<details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.47" references="/0/CppClassIncludeDeclaration/%/%/%.2/%/%/%">
- <details key="start" value="879"/>
- <details key="end" value="892"/>
+ <eAnnotations source="positions.46" references="/0/cppClassIncludes/%/%.1/%/%/%">
+ <details key="start" value="936"/>
+ <details key="end" value="949"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.48" references="/0/CppClassIncludeDeclaration/%/%/%.2/%/%.1">
- <details key="start" value="904"/>
- <details key="end" value="917"/>
+ <eAnnotations source="positions.47" references="/0/cppClassIncludes/%/%.1/%/%.1">
+ <details key="start" value="961"/>
+ <details key="end" value="974"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.49" references="/0/CppClassIncludeDeclaration/%/%.1">
- <details key="start" value="798"/>
- <details key="end" value="832"/>
+ <eAnnotations source="positions.48" references="/0/cppClassIncludes/%/%.2">
+ <details key="start" value="991"/>
+ <details key="end" value="1007"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.50" references="/0/CppClassIncludeDeclaration/%/%.1/self">
- <details key="start" value="-1"/>
- <details key="end" value="-1"/>
+ <eAnnotations source="positions.49" references="/0/cppClassIncludes/%/%.2/ne">
+ <details key="start" value="991"/>
+ <details key="end" value="993"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.51" references="/0/CppClassIncludeDeclaration/%/%.1/%">
- <details key="start" value="817"/>
- <details key="end" value="830"/>
+ <eAnnotations source="positions.50" references="/0/CppClassIncludeDeclaration">
+ <details key="start" value="1018"/>
+ <details key="end" value="1137"/>
+ <details key="line" value="28"/>
+ </eAnnotations>
+ <eAnnotations source="positions.51" references="/0/CppClassIncludeDeclaration/collect">
+ <details key="start" value="1083"/>
+ <details key="end" value="1123"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.52" references="/0/CppClassIncludeDeclaration/%/%.2">
- <details key="start" value="961"/>
- <details key="end" value="999"/>
- <details key="line" value="24"/>
+ <eAnnotations source="positions.52" references="/0/CppClassIncludeDeclaration/collect/%">
+ <details key="start" value="1083"/>
+ <details key="end" value="1104"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.53" references="/0/CppClassIncludeDeclaration/%/%.2/%">
- <details key="start" value="968"/>
- <details key="end" value="978"/>
- <details key="line" value="25"/>
+ <eAnnotations source="positions.53" references="/0/CppClassIncludeDeclaration/collect/%/ne">
+ <details key="start" value="1083"/>
+ <details key="end" value="1085"/>
+ <details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.54" references="/0/CppClassIncludeDeclaration/%/%.2/%.1">
- <details key="start" value="979"/>
- <details key="end" value="995"/>
+ <eAnnotations source="positions.54" references="/0/CppClassIncludeDeclaration/collect/%.1">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.55" references="/0/CppClassIncludeDeclaration/%/%.2/%.1/ne">
- <details key="start" value="979"/>
- <details key="end" value="981"/>
+ <eAnnotations source="positions.55" references="/0/CppClassIncludeDeclaration/collect/%.1/temp1">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
<details key="line" value="0"/>
</eAnnotations>
- <eAnnotations source="positions.56" references="/0/CppClassIncludeDeclaration/%/%.2/%.2">
- <details key="start" value="997"/>
- <details key="end" value="999"/>
- <details key="line" value="25"/>
+ <eAnnotations source="positions.56" references="/0/CppClassIncludeDeclaration/collect/temp1">
+ <details key="start" value="-1"/>
+ <details key="end" value="-1"/>
+ <details key="line" value="0"/>
</eAnnotations>
<eAnnotations source="positions.57" references="/0/CppClassIncludeDeclaration/ne">
- <details key="start" value="774"/>
- <details key="end" value="791"/>
- <details key="line" value="19"/>
+ <details key="start" value="1062"/>
+ <details key="end" value="1079"/>
+ <details key="line" value="28"/>
</eAnnotations>
</ecore:EAnnotation>
</xmi:XMI>
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.mtl
index 7845223..71b8d63 100644
--- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.mtl
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassIncludeDeclaration.mtl
@@ -1,5 +1,6 @@
[module CppClassIncludeDeclaration('http://www.eclipse.org/uml2/5.0.0/UML', 'http://www.eclipse.org/papyrus/C_Cpp/1')/]
[import org::eclipse::papyrus::acceleo::GenUtils/]
+[import org::eclipse::papyrus::cpp::codegen::acceleo::CppIncludeUtils/]
[import org::eclipse::papyrus::cpp::codegen::preferences::CppCodeGenUtils/]
@@ -16,12 +17,14 @@ endif
/]
[comment TODO: original code did not use nearest package, if stereotype CppRoot was applied/]
+[query public cppClassIncludes(ne : NamedElement) : Sequence(String) =
+if (hasStereotypeTree(ExternLibrary)) then
+ getApplicationTree(ExternLibrary).oclAsType(ExternLibrary).includes
+else
+ ne.includeName()
+endif
+/]
+
[template public CppClassIncludeDeclaration(ne : NamedElement)]
-[if (hasStereotypeTree(ExternLibrary))]
- [for (include : String | getApplicationTree(ExternLibrary).oclAsType(ExternLibrary).includes)]
-#include <[include/]>
- [/for]
-[else]
-#include <[ne.includeName()/]>
-[/if]
+[ne.cppClassIncludes().IncludeDirective()/]
[/template]