Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Eidsness2014-04-07 12:42:38 +0000
committerAndrew Eidsness2014-04-28 13:15:57 +0000
commit60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee (patch)
tree76a7e63ed8804c78cdf34cbf90cf2a8268b00e56 /extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen
parent736db7e86c838a6a162b77b2c69b5a5a6a221029 (diff)
downloadorg.eclipse.papyrus-60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee.tar.gz
org.eclipse.papyrus-60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee.tar.xz
org.eclipse.papyrus-60e7d2e0a8b8d686e00296f19e5e660ceb80f0ee.zip
Bug 425215: Duplicate #include directives
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>
Diffstat (limited to 'extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen')
-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 4eaed4efeb7..86c8b390bd2 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 f2e79ceaae1..bb2cf852f40 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 c8cba763c98..f372ad6c3eb 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 1f50d6b5763..007a48b1f47 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 d61fafb4d10..31678662463 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 75ad78cd988..f3ab44b4861 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 5e5fa6f0ac2..2fbf48e1a44 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 3442e8a1110..767eb5f68ad 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 e64f37de6ae..b32aedf7db3 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 7dd181172fe..4c6f033928d 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 6fe16ada10b..55fc473da7a 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 e5785836187..cca687e2f9e 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 b83c5c5d3fd..a6f29b07b66 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 e1bffe7854d..e94ed0680fc 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 ad8af1fb270..8684b1dd875 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 7845223ccba..71b8d63792c 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]

Back to the top