diff options
author | Ansgar Radermacher | 2013-10-28 14:26:07 +0000 |
---|---|---|
committer | Ansgar Radermacher | 2013-11-04 13:13:39 +0000 |
commit | 61b70f20dcd46e22e93831d517625c61f863301c (patch) | |
tree | 9fd2b544bcb1a4bfaa5aaec213a5254e6171b856 /extraplugins/codegen/org.eclipse.papyrus.cpp.codegen | |
parent | 3499d425ccb5ab47baf342a117517b3ff533d884 (diff) | |
download | org.eclipse.papyrus-61b70f20dcd46e22e93831d517625c61f863301c.tar.gz org.eclipse.papyrus-61b70f20dcd46e22e93831d517625c61f863301c.tar.xz org.eclipse.papyrus-61b70f20dcd46e22e93831d517625c61f863301c.zip |
- [Bug 420376] Generated C++ code is not formatted
Diffstat (limited to 'extraplugins/codegen/org.eclipse.papyrus.cpp.codegen')
34 files changed, 3689 insertions, 1227 deletions
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF index a3173faae80..e61890a6ee7 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/META-INF/MANIFEST.MF @@ -19,7 +19,9 @@ Require-Bundle: org.eclipse.ui, org.eclipse.papyrus.cpp.profile;bundle-version="0.10.1",
org.eclipse.ui.ide;bundle-version="3.8.0",
org.eclipse.core.filesystem;bundle-version="1.3.200",
- org.eclipse.papyrus.acceleo;bundle-version="0.10.1"
+ org.eclipse.papyrus.acceleo;bundle-version="0.10.1",
+ org.eclipse.cdt.core;resolution:=optional,
+ org.eclipse.papyrus.infra.core.log;bundle-version="0.10.1"
Bundle-Vendor: %providerName
Eclipse-LazyStart: true
Bundle-Version: 0.10.1.qualifier
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java index 83cc1860acf..9b941aae4dc 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/Activator.java @@ -10,6 +10,7 @@ *******************************************************************************/
package org.eclipse.papyrus.cpp.codegen;
+import org.eclipse.papyrus.infra.core.log.LogHelper;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -25,6 +26,8 @@ public class Activator extends AbstractUIPlugin { // The shared instance
private static Activator plugin;
+ public static LogHelper log;
+
/**
* Returns the shared instance
*
@@ -49,6 +52,7 @@ public class Activator extends AbstractUIPlugin { @Override
public void start(BundleContext context) throws Exception {
super.start(context);
+ log = new LogHelper();
}
/*
@@ -60,6 +64,5 @@ public class Activator extends AbstractUIPlugin { public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
- }
-
+ }
}
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 be9be9c0e92..efb79a4d929 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 @@ -421,11 +421,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//TemplateParameterSubstitution"/> 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 3191372c20a..371853d61cd 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 @@ -410,11 +410,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//TemplateParameterSubstitution"/> 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 a97af9c21f1..50a3706d8b1 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 @@ -50,12 +50,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="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getFullPath"/> - <argument xsi:type="ocl.ecore:PropertyCallExp"> + <argument xsi:type="ocl.ecore:OperationCallExp"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.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/4.0.0/UML#//Classifier"/> </source> - <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type/package"/> + <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element/getNearestPackage"/> </argument> </body> <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/"/> @@ -390,11 +390,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Property_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/> @@ -467,7 +482,7 @@ <ecore:EAnnotation source="positions"> <eAnnotations source="positions.0" references="/0/CppClassBody"> <details key="start" value="740"/> - <details key="end" value="1514"/> + <details key="end" value="1525"/> <details key="line" value="13"/> </eAnnotations> <eAnnotations source="positions.1" references="/0/CppClassBody/%"> @@ -537,12 +552,12 @@ </eAnnotations> <eAnnotations source="positions.14" references="/0/CppClassBody/%.9"> <details key="start" value="1045"/> - <details key="end" value="1067"/> + <details key="end" value="1078"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.15" references="/0/CppClassBody/%.9/%"> <details key="start" value="1045"/> - <details key="end" value="1053"/> + <details key="end" value="1064"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.16" references="/0/CppClassBody/%.9/%/self"> @@ -551,28 +566,28 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.17" references="/0/CppClassBody/%.10"> - <details key="start" value="1069"/> - <details key="end" value="1070"/> + <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="1071"/> - <details key="end" value="1081"/> + <details key="start" value="1082"/> + <details key="end" value="1092"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.19" references="/0/CppClassBody/%.11/class"> - <details key="start" value="1071"/> - <details key="end" value="1076"/> + <details key="start" value="1082"/> + <details key="end" value="1087"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.20" references="/0/CppClassBody/%.12"> - <details key="start" value="1083"/> - <details key="end" value="1084"/> + <details key="start" value="1094"/> + <details key="end" value="1095"/> <details key="line" value="23"/> </eAnnotations> <eAnnotations source="positions.21" references="/0/CppClassBody/%.13"> - <details key="start" value="1085"/> - <details key="end" value="1102"/> + <details key="start" value="1096"/> + <details key="end" value="1113"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.22" references="/0/CppClassBody/%.13/self"> @@ -581,13 +596,13 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.23" references="/0/CppClassBody/%.14"> - <details key="start" value="1104"/> - <details key="end" value="1107"/> + <details key="start" value="1115"/> + <details key="end" value="1118"/> <details key="line" value="23"/> </eAnnotations> <eAnnotations source="positions.24" references="/0/CppClassBody/%.15"> - <details key="start" value="1108"/> - <details key="end" value="1124"/> + <details key="start" value="1119"/> + <details key="end" value="1135"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.25" references="/0/CppClassBody/%.15/self"> @@ -596,13 +611,13 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.26" references="/0/CppClassBody/%.16"> - <details key="start" value="1126"/> - <details key="end" value="1128"/> + <details key="start" value="1137"/> + <details key="end" value="1139"/> <details key="line" value="26"/> </eAnnotations> <eAnnotations source="positions.27" references="/0/CppClassBody/%.17"> - <details key="start" value="1129"/> - <details key="end" value="1151"/> + <details key="start" value="1140"/> + <details key="end" value="1162"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.28" references="/0/CppClassBody/%.17/self"> @@ -611,13 +626,13 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.29" references="/0/CppClassBody/%.18"> - <details key="start" value="1153"/> - <details key="end" value="1154"/> + <details key="start" value="1164"/> + <details key="end" value="1165"/> <details key="line" value="28"/> </eAnnotations> <eAnnotations source="positions.30" references="/0/CppClassBody/%.19"> - <details key="start" value="1155"/> - <details key="end" value="1191"/> + <details key="start" value="1166"/> + <details key="end" value="1202"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.31" references="/0/CppClassBody/%.19/self"> @@ -626,48 +641,48 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.32" references="/0/CppClassBody/%.20"> - <details key="start" value="1193"/> - <details key="end" value="1195"/> + <details key="start" value="1204"/> + <details key="end" value="1206"/> <details key="line" value="29"/> </eAnnotations> <eAnnotations source="positions.33" references="/0/CppClassBody/%.21"> - <details key="start" value="1196"/> - <details key="end" value="1209"/> + <details key="start" value="1207"/> + <details key="end" value="1220"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.34" references="/0/CppClassBody/%.21/class"> - <details key="start" value="1203"/> - <details key="end" value="1208"/> + <details key="start" value="1214"/> + <details key="end" value="1219"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.35" references="/0/CppClassBody/%.22"> - <details key="start" value="1211"/> - <details key="end" value="1212"/> + <details key="start" value="1222"/> + <details key="end" value="1223"/> <details key="line" value="31"/> </eAnnotations> <eAnnotations source="positions.36" references="/0/CppClassBody/%.23"> - <details key="start" value="1213"/> - <details key="end" value="1239"/> + <details key="start" value="1224"/> + <details key="end" value="1250"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.37" references="/0/CppClassBody/%.23/class"> - <details key="start" value="1233"/> - <details key="end" value="1238"/> + <details key="start" value="1244"/> + <details key="end" value="1249"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.38" references="/0/CppClassBody/%.24"> - <details key="start" value="1241"/> - <details key="end" value="1242"/> + <details key="start" value="1252"/> + <details key="end" value="1253"/> <details key="line" value="32"/> </eAnnotations> <eAnnotations source="positions.39" references="/0/CppClassBody/%.25"> - <details key="start" value="1242"/> - <details key="end" value="1312"/> + <details key="start" value="1253"/> + <details key="end" value="1323"/> <details key="line" value="32"/> </eAnnotations> <eAnnotations source="positions.40" references="/0/CppClassBody/%.25/%"> - <details key="start" value="1265"/> - <details key="end" value="1304"/> + <details key="start" value="1276"/> + <details key="end" value="1315"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.41" references="/0/CppClassBody/%.25/%/self"> @@ -676,23 +691,23 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.42" references="/0/CppClassBody/%.25/%/%"> - <details key="start" value="1298"/> - <details key="end" value="1303"/> + <details key="start" value="1309"/> + <details key="end" value="1314"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.43" references="/0/CppClassBody/%.25/%.1"> - <details key="start" value="1306"/> - <details key="end" value="1307"/> + <details key="start" value="1317"/> + <details key="end" value="1318"/> <details key="line" value="34"/> </eAnnotations> <eAnnotations source="positions.44" references="/0/CppClassBody/%.25/%.2"> - <details key="start" value="1246"/> - <details key="end" value="1262"/> + <details key="start" value="1257"/> + <details key="end" value="1273"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.45" references="/0/CppClassBody/%.25/%.2/%"> - <details key="start" value="1250"/> - <details key="end" value="1262"/> + <details key="start" value="1261"/> + <details key="end" value="1273"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.46" references="/0/CppClassBody/%.25/%.2/%/self"> @@ -701,33 +716,33 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.47" references="/0/CppClassBody/%.26"> - <details key="start" value="1314"/> - <details key="end" value="1328"/> + <details key="start" value="1325"/> + <details key="end" value="1339"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.48" references="/0/CppClassBody/%.26/class"> - <details key="start" value="1322"/> - <details key="end" value="1327"/> + <details key="start" value="1333"/> + <details key="end" value="1338"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.49" references="/0/CppClassBody/%.27"> - <details key="start" value="1330"/> - <details key="end" value="1415"/> + <details key="start" value="1341"/> + <details key="end" value="1426"/> <details key="line" value="36"/> </eAnnotations> <eAnnotations source="positions.50" references="/0/CppClassBody/%.28"> - <details key="start" value="1416"/> - <details key="end" value="1426"/> + <details key="start" value="1427"/> + <details key="end" value="1437"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.51" references="/0/CppClassBody/%.28/class"> - <details key="start" value="1416"/> - <details key="end" value="1421"/> + <details key="start" value="1427"/> + <details key="end" value="1432"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.52" references="/0/CppClassBody/%.29"> - <details key="start" value="1428"/> - <details key="end" value="1502"/> + <details key="start" value="1439"/> + <details key="end" value="1513"/> <details key="line" value="38"/> </eAnnotations> <eAnnotations source="positions.53" references="/0/CppClassBody/class"> 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 5adbcc9bc17..4d02a2f113d 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,7 +20,7 @@ [CppIncludePreBody()/] [constIncludeHFile()/] -#include <[_package.getFullPath()/]/[class.name/].[getHeaderSuffix()/]> +#include <[getNearestPackage().getFullPath()/]/[class.name/].[getHeaderSuffix()/]> [CppIncludeBody()/] 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 b4005e3632e..93f229094ce 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 @@ -21,49 +21,66 @@ <imports href="util/clazz/CppClassOperationsImplementation.emtl#/0"/> <imports href="util/CppTemplates.emtl#/0"/> <imports href="util/CppDocumentation.emtl#/0"/> - <ownedModuleElement xsi:type="mtl:Query" name="classUnionOrStruct" visibility="Public"> - <parameter name="classifier"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </parameter> - <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="mtl:QueryInvocation"> + <ownedModuleElement xsi:type="mtl:Template" name="classUnionOrStruct" visibility="Public"> + <body xsi:type="mtl:IfBlock"> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" 'union'
"/> + <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"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/5"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/7"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> - <argument xsi:type="ocl.ecore:TypeExp" eType="/4/Union"> + <argument xsi:type="ocl.ecore:TypeExp" eType="/6/Union"> <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Union"/> </argument> - </condition> - <thenExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="union"> - <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> - </thenExpression> - <elseExpression 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:VariableExp" name="self" referredVariable="/5"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </source> - <argument xsi:type="ocl.ecore:TypeExp" eType="/4/DataType"> - <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//DataType"/> - </argument> - <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/> - </condition> - <thenExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="struct"> - <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> - </thenExpression> - <elseExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="class"> - <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> - </elseExpression> - </elseExpression> - </expression> - <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </ifExpr> + <else> + <body xsi:type="mtl:IfBlock"> + <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="../utils/CppGenUtils.emtl#/0/resetVisibility"/> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
 struct
"/> + <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:VariableExp" name="self" referredVariable="/8"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </source> + <argument xsi:type="ocl.ecore:TypeExp" eType="/6/DataType"> + <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//DataType"/> + </argument> + <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/> + </ifExpr> + <else> + <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="../utils/CppGenUtils.emtl#/0/resetVisibility"/> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/private"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
 class
"/> + </else> + </body> + </else> + </body> + <parameter name="classifier"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </parameter> </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Comment"> - <body startPosition="1469" endPosition="1637" value=" default initializer for non-static attributes with a default value
TODO: should be disabled by default, since non-static members can be initialized directly
in C++ 011"/> + <body startPosition="1590" endPosition="1758" value=" default initializer for non-static attributes with a default value
TODO: should be disabled by default, since non-static members can be initialized directly
in C++ 011"/> </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Template" name="defaultInitializer" visibility="Public"> <body xsi:type="mtl:LetBlock"> @@ -80,7 +97,7 @@ <body xsi:type="mtl:ForBlock"> <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="/18"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/> </source> <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> @@ -90,7 +107,7 @@ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> <source xsi:type="ocl.ecore:PropertyCallExp"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//ValueSpecification"/> - <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/19"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/24"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/> </source> <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Property/defaultValue"/> @@ -101,7 +118,7 @@ <loopVariable name="a"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/> </loopVariable> - <iterSet xsi:type="ocl.ecore:VariableExp" name="attributeList" eType="/11/Set(Property)" referredVariable="/0/defaultInitializer/%/attributeList"/> + <iterSet xsi:type="ocl.ecore:VariableExp" name="attributeList" eType="/16/Set(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> @@ -111,16 +128,16 @@ <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="/11/Set(Property)" referredVariable="/0/defaultInitializer/%/attributeList"/> + <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> <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="/11/Set(Property)"> - <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/11/Set(Property)"> - <source xsi:type="ocl.ecore:PropertyCallExp" eType="/11/Set(Property)"> - <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/12"> + <letVariable name="attributeList" eType="/16/Set(Property)"> + <initExpression xsi:type="ocl.ecore:IteratorExp" name="select" eType="/16/Set(Property)"> + <source xsi:type="ocl.ecore:PropertyCallExp" eType="/16/Set(Property)"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/17"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </source> <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/attribute"/> @@ -190,7 +207,7 @@ </parameter> <post xsi:type="ocl.ecore:OperationCallExp"> <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="/9"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/14"> <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/trim"/> @@ -201,7 +218,11 @@ <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/getFullNameUC"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/26"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/31"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -209,7 +230,11 @@ <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/getFullNameUC"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/27"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/32"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -227,7 +252,7 @@ <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/4.0.0/UML#//Package"/> - <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/29"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/34"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </source> <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type/package"/> @@ -237,7 +262,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/CppClassIncludeClassDeclaration.emtl#/0/CppClassAllIncludesDeclaration"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/30"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -245,7 +270,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="/31"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/36"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -253,7 +278,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="/32"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/37"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -261,7 +286,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="/33"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/38"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -269,13 +294,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="/34"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/39"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> - <body xsi:type="mtl:QueryInvocation" definition="/0/classUnionOrStruct"> + <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="/35"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/40"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -290,7 +315,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="/37"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/42"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -298,97 +323,157 @@ <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="/38"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/43"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.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="/39"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/44"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="

 public:
"/> - <body xsi:type="mtl:TemplateInvocation" definition="/0/defaultInitializer"> + <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"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/40"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + <definition href="../utils/CppGenUtils.emtl#/0/getSection"/> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> + </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="/45"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> </argument> </body> - <body xsi:type="mtl:TemplateInvocation"> + <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="util/clazz/CppClassAttributesDeclaration.emtl#/0/CppClassAttributesDeclaration"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/41"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="../utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> </argument> + <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="/46"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> + </argument> + </argument> </body> - <body xsi:type="mtl:TemplateInvocation"> + <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="util/clazz/CppClassOperationsDeclaration.emtl#/0/CppClassOperationsDeclaration"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/42"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="../utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> </argument> + <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="/47"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> + </argument> + </argument> </body> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="

 protected:
"/> - <body xsi:type="mtl:TemplateInvocation"> + <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="util/clazz/CppClassAttributesDeclaration.emtl#/0/CppClassAttributesDeclaration"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/43"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="../utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/protected"/> </argument> + <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="/48"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/protected"/> + </argument> + </argument> </body> - <body xsi:type="mtl:TemplateInvocation"> + <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="util/clazz/CppClassOperationsDeclaration.emtl#/0/CppClassOperationsDeclaration"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/44"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="../utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/protected"/> </argument> + <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="/49"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/protected"/> + </argument> + </argument> </body> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="

 private:
"/> - <body xsi:type="mtl:TemplateInvocation"> + <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="util/clazz/CppClassAttributesDeclaration.emtl#/0/CppClassAttributesDeclaration"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/45"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="../utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/private"/> </argument> + <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="/50"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/private"/> + </argument> + </argument> </body> - <body xsi:type="mtl:TemplateInvocation"> + <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="util/clazz/CppClassOperationsDeclaration.emtl#/0/CppClassOperationsDeclaration"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/46"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="../utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/private"/> </argument> + <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="/51"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/private"/> + </argument> + </argument> </body> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="

};
/************************************************************/
/* External declarations (package visibility) */
"/> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
};
/************************************************************/
/* External declarations (package visibility) */
"/> <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="/47"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/52"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> <argument xsi:type="ocl.ecore:EnumLiteralExp"> @@ -400,7 +485,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="/48"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/53"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> <argument xsi:type="ocl.ecore:EnumLiteralExp"> @@ -414,7 +499,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="/50"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/55"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false"> @@ -425,7 +510,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="/49"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/54"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </ifExpr> @@ -434,7 +519,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="/51"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/56"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true"> @@ -445,7 +530,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="/52"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/57"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </argument> </body> @@ -564,6 +649,33 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement"/> </eParameters> </eOperations> + <eOperations name="resetVisibility"> + <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/resetVisibility"/> + </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:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eParameters> + </eOperations> + <eOperations name="getSection"> + <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/getSection"/> + </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:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eParameters> + <eParameters name="arg1"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </eParameters> + </eOperations> <eOperations name="CppIncludeHeader"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -773,11 +885,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Namespace_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/> @@ -805,6 +932,12 @@ <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.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/4.0.0/UML#//Classifier"/> + </ocl.ecore:Variable> <ecore:EPackage name="types"> <eClassifiers xsi:type="ocl.ecore:TypeType" name="Union"> <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Union"/> @@ -817,6 +950,15 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </ocl.ecore:Variable> <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </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"> @@ -968,763 +1110,893 @@ <ecore:EAnnotation source="positions"> <eAnnotations source="positions.0" references="/0/classUnionOrStruct"> <details key="start" value="1268"/> - <details key="end" value="1459"/> + <details key="end" value="1580"/> <details key="line" value="18"/> </eAnnotations> - <eAnnotations source="positions.1" references="/0/classUnionOrStruct/classifier"> - <details key="start" value="1301"/> - <details key="end" value="1324"/> - <details key="line" value="18"/> + <eAnnotations source="positions.1" references="/0/classUnionOrStruct/%"> + <details key="start" value="1330"/> + <details key="end" value="1568"/> + <details key="line" value="19"/> </eAnnotations> - <eAnnotations source="positions.2" references="/0/classUnionOrStruct/%"> - <details key="start" value="1337"/> - <details key="end" value="1456"/> - <details key="line" value="0"/> + <eAnnotations source="positions.2" references="/0/classUnionOrStruct/%/%"> + <details key="start" value="1365"/> + <details key="end" value="1377"/> + <details key="line" value="20"/> </eAnnotations> - <eAnnotations source="positions.3" references="/0/classUnionOrStruct/%/%"> - <details key="start" value="1340"/> - <details key="end" value="1369"/> + <eAnnotations source="positions.3" references="/0/classUnionOrStruct/%/%.1"> + <details key="start" value="1334"/> + <details key="end" value="1363"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.4" references="/0/classUnionOrStruct/%/%/self"> + <eAnnotations source="positions.4" references="/0/classUnionOrStruct/%/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.5" references="/0/classUnionOrStruct/%/%/%"> - <details key="start" value="1355"/> - <details key="end" value="1367"/> + <eAnnotations source="positions.5" references="/0/classUnionOrStruct/%/%.1/%"> + <details key="start" value="1349"/> + <details key="end" value="1361"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.6" references="/0/classUnionOrStruct/%/%.1"> - <details key="start" value="1375"/> - <details key="end" value="1382"/> + <eAnnotations source="positions.6" references="/0/classUnionOrStruct/%/%.2"> + <details key="start" value="1377"/> + <details key="end" value="1563"/> + <details key="line" value="21"/> + </eAnnotations> + <eAnnotations source="positions.7" references="/0/classUnionOrStruct/%/%.2/%"> + <details key="start" value="1385"/> + <details key="end" value="1562"/> + <details key="line" value="22"/> + </eAnnotations> + <eAnnotations source="positions.8" references="/0/classUnionOrStruct/%/%.2/%/%"> + <details key="start" value="1414"/> + <details key="end" value="1422"/> + <details key="line" value="23"/> + </eAnnotations> + <eAnnotations source="positions.9" references="/0/classUnionOrStruct/%/%.2/%/%.1"> + <details key="start" value="1423"/> + <details key="end" value="1463"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.7" references="/0/classUnionOrStruct/%/%.2"> - <details key="start" value="1389"/> - <details key="end" value="1450"/> + <eAnnotations source="positions.10" references="/0/classUnionOrStruct/%/%.2/%/%.1/%"> + <details key="start" value="1423"/> + <details key="end" value="1445"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.8" references="/0/classUnionOrStruct/%/%.2/%"> - <details key="start" value="1392"/> - <details key="end" value="1415"/> + <eAnnotations source="positions.11" references="/0/classUnionOrStruct/%/%.2/%/%.2"> + <details key="start" value="1465"/> + <details key="end" value="1481"/> + <details key="line" value="24"/> + </eAnnotations> + <eAnnotations source="positions.12" references="/0/classUnionOrStruct/%/%.2/%/%.3"> + <details key="start" value="1389"/> + <details key="end" value="1412"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.9" references="/0/classUnionOrStruct/%/%.2/%/self"> + <eAnnotations source="positions.13" references="/0/classUnionOrStruct/%/%.2/%/%.3/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.10" references="/0/classUnionOrStruct/%/%.2/%/%"> - <details key="start" value="1405"/> - <details key="end" value="1413"/> + <eAnnotations source="positions.14" references="/0/classUnionOrStruct/%/%.2/%/%.3/%"> + <details key="start" value="1402"/> + <details key="end" value="1410"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.11" references="/0/classUnionOrStruct/%/%.2/%.1"> - <details key="start" value="1421"/> - <details key="end" value="1429"/> - <details key="line" value="0"/> + <eAnnotations source="positions.15" references="/0/classUnionOrStruct/%/%.2/%/%.4"> + <details key="start" value="1482"/> + <details key="end" value="1557"/> + <details key="line" value="25"/> + </eAnnotations> + <eAnnotations source="positions.16" references="/0/classUnionOrStruct/%/%.2/%/%.4/%"> + <details key="start" value="1489"/> + <details key="end" value="1497"/> + <details key="line" value="26"/> </eAnnotations> - <eAnnotations source="positions.12" references="/0/classUnionOrStruct/%/%.2/%.2"> - <details key="start" value="1436"/> - <details key="end" value="1443"/> + <eAnnotations source="positions.17" references="/0/classUnionOrStruct/%/%.2/%/%.4/%.1"> + <details key="start" value="1498"/> + <details key="end" value="1539"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.13" references="/0/%"> - <details key="start" value="1461"/> - <details key="end" value="1639"/> + <eAnnotations source="positions.18" references="/0/classUnionOrStruct/%/%.2/%/%.4/%.1/%"> + <details key="start" value="1498"/> + <details key="end" value="1521"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.14" references="/0/defaultInitializer"> - <details key="start" value="1640"/> - <details key="end" value="2048"/> - <details key="line" value="30"/> + <eAnnotations source="positions.19" references="/0/classUnionOrStruct/%/%.2/%/%.4/%.2"> + <details key="start" value="1541"/> + <details key="end" value="1556"/> + <details key="line" value="27"/> </eAnnotations> - <eAnnotations source="positions.15" references="/0/defaultInitializer/%"> - <details key="start" value="1715"/> - <details key="end" value="2036"/> - <details key="line" value="31"/> + <eAnnotations source="positions.20" references="/0/classUnionOrStruct/classifier"> + <details key="start" value="1304"/> + <details key="end" value="1327"/> + <details key="line" value="18"/> </eAnnotations> - <eAnnotations source="positions.16" references="/0/defaultInitializer/%/%"> - <details key="start" value="1864"/> - <details key="end" value="2030"/> + <eAnnotations source="positions.21" references="/0/%"> + <details key="start" value="1582"/> + <details key="end" value="1760"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.22" references="/0/defaultInitializer"> + <details key="start" value="1761"/> + <details key="end" value="2169"/> <details key="line" value="35"/> </eAnnotations> - <eAnnotations source="positions.17" references="/0/defaultInitializer/%/%/%"> - <details key="start" value="1898"/> - <details key="end" value="1899"/> + <eAnnotations source="positions.23" references="/0/defaultInitializer/%"> + <details key="start" value="1836"/> + <details key="end" value="2157"/> <details key="line" value="36"/> </eAnnotations> - <eAnnotations source="positions.18" references="/0/defaultInitializer/%/%/%.1"> - <details key="start" value="1900"/> - <details key="end" value="1915"/> + <eAnnotations source="positions.24" references="/0/defaultInitializer/%/%"> + <details key="start" value="1985"/> + <details key="end" value="2151"/> + <details key="line" value="40"/> + </eAnnotations> + <eAnnotations source="positions.25" references="/0/defaultInitializer/%/%/%"> + <details key="start" value="2019"/> + <details key="end" value="2020"/> + <details key="line" value="41"/> + </eAnnotations> + <eAnnotations source="positions.26" references="/0/defaultInitializer/%/%/%.1"> + <details key="start" value="2021"/> + <details key="end" value="2036"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.19" references="/0/defaultInitializer/%/%/%.1/classifier"> - <details key="start" value="1900"/> - <details key="end" value="1910"/> + <eAnnotations source="positions.27" references="/0/defaultInitializer/%/%/%.1/classifier"> + <details key="start" value="2021"/> + <details key="end" value="2031"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.20" references="/0/defaultInitializer/%/%/%.2"> - <details key="start" value="1917"/> - <details key="end" value="1922"/> - <details key="line" value="36"/> + <eAnnotations source="positions.28" references="/0/defaultInitializer/%/%/%.2"> + <details key="start" value="2038"/> + <details key="end" value="2043"/> + <details key="line" value="41"/> </eAnnotations> - <eAnnotations source="positions.21" references="/0/defaultInitializer/%/%/%.3"> - <details key="start" value="1922"/> - <details key="end" value="2021"/> - <details key="line" value="36"/> + <eAnnotations source="positions.29" references="/0/defaultInitializer/%/%/%.3"> + <details key="start" value="2043"/> + <details key="end" value="2142"/> + <details key="line" value="41"/> </eAnnotations> - <eAnnotations source="positions.22" references="/0/defaultInitializer/%/%/%.3/%"> - <details key="start" value="1978"/> - <details key="end" value="1982"/> + <eAnnotations source="positions.30" references="/0/defaultInitializer/%/%/%.3/%"> + <details key="start" value="2099"/> + <details key="end" value="2103"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.23" references="/0/defaultInitializer/%/%/%.3/%/self"> + <eAnnotations source="positions.31" references="/0/defaultInitializer/%/%/%.3/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.24" references="/0/defaultInitializer/%/%/%.3/%.1"> - <details key="start" value="1984"/> - <details key="end" value="1985"/> - <details key="line" value="37"/> + <eAnnotations source="positions.32" references="/0/defaultInitializer/%/%/%.3/%.1"> + <details key="start" value="2105"/> + <details key="end" value="2106"/> + <details key="line" value="42"/> </eAnnotations> - <eAnnotations source="positions.25" references="/0/defaultInitializer/%/%/%.3/%.2"> - <details key="start" value="1986"/> - <details key="end" value="2012"/> + <eAnnotations source="positions.33" references="/0/defaultInitializer/%/%/%.3/%.2"> + <details key="start" value="2107"/> + <details key="end" value="2133"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.26" references="/0/defaultInitializer/%/%/%.3/%.2/%"> - <details key="start" value="1986"/> - <details key="end" value="1998"/> + <eAnnotations source="positions.34" references="/0/defaultInitializer/%/%/%.3/%.2/%"> + <details key="start" value="2107"/> + <details key="end" value="2119"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.27" references="/0/defaultInitializer/%/%/%.3/%.2/%/self"> + <eAnnotations source="positions.35" references="/0/defaultInitializer/%/%/%.3/%.2/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.28" references="/0/defaultInitializer/%/%/%.3/%.3"> - <details key="start" value="2014"/> - <details key="end" value="2015"/> - <details key="line" value="37"/> + <eAnnotations source="positions.36" references="/0/defaultInitializer/%/%/%.3/%.3"> + <details key="start" value="2135"/> + <details key="end" value="2136"/> + <details key="line" value="42"/> </eAnnotations> - <eAnnotations source="positions.29" references="/0/defaultInitializer/%/%/%.3/a"> - <details key="start" value="1928"/> - <details key="end" value="1940"/> - <details key="line" value="36"/> + <eAnnotations source="positions.37" references="/0/defaultInitializer/%/%/%.3/a"> + <details key="start" value="2049"/> + <details key="end" value="2061"/> + <details key="line" value="41"/> </eAnnotations> - <eAnnotations source="positions.30" references="/0/defaultInitializer/%/%/%.3/attributeList"> - <details key="start" value="1943"/> - <details key="end" value="1956"/> + <eAnnotations source="positions.38" references="/0/defaultInitializer/%/%/%.3/attributeList"> + <details key="start" value="2064"/> + <details key="end" value="2077"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.31" references="/0/defaultInitializer/%/%/%.3/%.4"> - <details key="start" value="1968"/> - <details key="end" value="1972"/> + <eAnnotations source="positions.39" references="/0/defaultInitializer/%/%/%.3/%.4"> + <details key="start" value="2089"/> + <details key="end" value="2093"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.32" references="/0/defaultInitializer/%/%/%.4"> - <details key="start" value="2021"/> - <details key="end" value="2025"/> - <details key="line" value="37"/> + <eAnnotations source="positions.40" references="/0/defaultInitializer/%/%/%.4"> + <details key="start" value="2142"/> + <details key="end" value="2146"/> + <details key="line" value="42"/> </eAnnotations> - <eAnnotations source="positions.33" references="/0/defaultInitializer/%/%/%.5"> - <details key="start" value="1868"/> - <details key="end" value="1896"/> + <eAnnotations source="positions.41" references="/0/defaultInitializer/%/%/%.5"> + <details key="start" value="1989"/> + <details key="end" value="2017"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.34" references="/0/defaultInitializer/%/%/%.5/%"> - <details key="start" value="1872"/> - <details key="end" value="1896"/> + <eAnnotations source="positions.42" references="/0/defaultInitializer/%/%/%.5/%"> + <details key="start" value="1993"/> + <details key="end" value="2017"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.35" references="/0/defaultInitializer/%/%/%.5/%/attributeList"> - <details key="start" value="1872"/> - <details key="end" value="1885"/> + <eAnnotations source="positions.43" references="/0/defaultInitializer/%/%/%.5/%/attributeList"> + <details key="start" value="1993"/> + <details key="end" value="2006"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.36" references="/0/defaultInitializer/%/attributeList"> - <details key="start" value="1720"/> - <details key="end" value="1862"/> - <details key="line" value="31"/> + <eAnnotations source="positions.44" references="/0/defaultInitializer/%/attributeList"> + <details key="start" value="1841"/> + <details key="end" value="1983"/> + <details key="line" value="36"/> </eAnnotations> - <eAnnotations source="positions.37" references="/0/defaultInitializer/%/attributeList/select"> - <details key="start" value="1753"/> - <details key="end" value="1863"/> + <eAnnotations source="positions.45" references="/0/defaultInitializer/%/attributeList/select"> + <details key="start" value="1874"/> + <details key="end" value="1984"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.38" references="/0/defaultInitializer/%/attributeList/select/%"> - <details key="start" value="1753"/> - <details key="end" value="1762"/> + <eAnnotations source="positions.46" references="/0/defaultInitializer/%/attributeList/select/%"> + <details key="start" value="1874"/> + <details key="end" value="1883"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.39" references="/0/defaultInitializer/%/attributeList/select/%/self"> + <eAnnotations source="positions.47" references="/0/defaultInitializer/%/attributeList/select/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.40" references="/0/defaultInitializer/%/attributeList/select/%.1"> - <details key="start" value="1774"/> - <details key="end" value="1862"/> + <eAnnotations source="positions.48" references="/0/defaultInitializer/%/attributeList/select/%.1"> + <details key="start" value="1895"/> + <details key="end" value="1983"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.41" references="/0/defaultInitializer/%/attributeList/select/%.1/%"> - <details key="start" value="1774"/> - <details key="end" value="1820"/> + <eAnnotations source="positions.49" references="/0/defaultInitializer/%/attributeList/select/%.1/%"> + <details key="start" value="1895"/> + <details key="end" value="1941"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.42" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%"> - <details key="start" value="1774"/> - <details key="end" value="1792"/> + <eAnnotations source="positions.50" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%"> + <details key="start" value="1895"/> + <details key="end" value="1913"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.43" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%/%"> - <details key="start" value="1775"/> - <details key="end" value="1783"/> + <eAnnotations source="positions.51" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%/%"> + <details key="start" value="1896"/> + <details key="end" value="1904"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.44" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%/%/temp1"> + <eAnnotations source="positions.52" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%/%/temp1"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.45" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%/%.1"> - <details key="start" value="1786"/> - <details key="end" value="1791"/> + <eAnnotations source="positions.53" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%/%.1"> + <details key="start" value="1907"/> + <details key="end" value="1912"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.46" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1"> - <details key="start" value="1798"/> - <details key="end" value="1820"/> + <eAnnotations source="positions.54" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1"> + <details key="start" value="1919"/> + <details key="end" value="1941"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.47" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1/%"> - <details key="start" value="1799"/> - <details key="end" value="1811"/> + <eAnnotations source="positions.55" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1/%"> + <details key="start" value="1920"/> + <details key="end" value="1932"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.48" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1/%/temp1"> + <eAnnotations source="positions.56" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1/%/temp1"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.49" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1/%.1"> - <details key="start" value="1815"/> - <details key="end" value="1819"/> + <eAnnotations source="positions.57" references="/0/defaultInitializer/%/attributeList/select/%.1/%/%.1/%.1"> + <details key="start" value="1936"/> + <details key="end" value="1940"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.50" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1"> - <details key="start" value="1826"/> - <details key="end" value="1862"/> + <eAnnotations source="positions.58" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1"> + <details key="start" value="1947"/> + <details key="end" value="1983"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.51" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%"> - <details key="start" value="1827"/> - <details key="end" value="1853"/> + <eAnnotations source="positions.59" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%"> + <details key="start" value="1948"/> + <details key="end" value="1974"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.52" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%/%"> - <details key="start" value="1827"/> - <details key="end" value="1839"/> + <eAnnotations source="positions.60" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%/%"> + <details key="start" value="1948"/> + <details key="end" value="1960"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.53" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%/%/temp1"> + <eAnnotations source="positions.61" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%/%/temp1"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.54" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%.1"> - <details key="start" value="1857"/> - <details key="end" value="1861"/> + <eAnnotations source="positions.62" references="/0/defaultInitializer/%/attributeList/select/%.1/%.1/%.1"> + <details key="start" value="1978"/> + <details key="end" value="1982"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.55" references="/0/defaultInitializer/%/attributeList/select/temp1"> + <eAnnotations source="positions.63" references="/0/defaultInitializer/%/attributeList/select/temp1"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.56" references="/0/defaultInitializer/classifier"> - <details key="start" value="1676"/> - <details key="end" value="1699"/> - <details key="line" value="30"/> + <eAnnotations source="positions.64" references="/0/defaultInitializer/classifier"> + <details key="start" value="1797"/> + <details key="end" value="1820"/> + <details key="line" value="35"/> </eAnnotations> - <eAnnotations source="positions.57" references="/0/defaultInitializer/%.1"> - <details key="start" value="1706"/> - <details key="end" value="1712"/> + <eAnnotations source="positions.65" references="/0/defaultInitializer/%.1"> + <details key="start" value="1827"/> + <details key="end" value="1833"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.58" references="/0/defaultInitializer/%.1/self"> + <eAnnotations source="positions.66" references="/0/defaultInitializer/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.59" references="/0/CppClassHeader"> - <details key="start" value="2051"/> - <details key="end" value="3917"/> - <details key="line" value="42"/> + <eAnnotations source="positions.67" references="/0/CppClassHeader"> + <details key="start" value="2172"/> + <details key="end" value="4287"/> + <details key="line" value="47"/> </eAnnotations> - <eAnnotations source="positions.60" references="/0/CppClassHeader/%"> - <details key="start" value="2104"/> - <details key="end" value="2112"/> - <details key="line" value="43"/> + <eAnnotations source="positions.68" references="/0/CppClassHeader/%"> + <details key="start" value="2225"/> + <details key="end" value="2233"/> + <details key="line" value="48"/> </eAnnotations> - <eAnnotations source="positions.61" references="/0/CppClassHeader/%.1"> - <details key="start" value="2113"/> - <details key="end" value="2128"/> + <eAnnotations source="positions.69" references="/0/CppClassHeader/%.1"> + <details key="start" value="2234"/> + <details key="end" value="2249"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.62" references="/0/CppClassHeader/%.1/self"> + <eAnnotations source="positions.70" references="/0/CppClassHeader/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.63" references="/0/CppClassHeader/%.2"> - <details key="start" value="2130"/> - <details key="end" value="2141"/> - <details key="line" value="43"/> + <eAnnotations source="positions.71" references="/0/CppClassHeader/%.2"> + <details key="start" value="2251"/> + <details key="end" value="2262"/> + <details key="line" value="48"/> </eAnnotations> - <eAnnotations source="positions.64" references="/0/CppClassHeader/%.3"> - <details key="start" value="2142"/> - <details key="end" value="2157"/> + <eAnnotations source="positions.72" references="/0/CppClassHeader/%.3"> + <details key="start" value="2263"/> + <details key="end" value="2278"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.65" references="/0/CppClassHeader/%.3/self"> + <eAnnotations source="positions.73" references="/0/CppClassHeader/%.3/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.66" references="/0/CppClassHeader/%.4"> - <details key="start" value="2159"/> - <details key="end" value="2239"/> - <details key="line" value="44"/> + <eAnnotations source="positions.74" references="/0/CppClassHeader/%.4"> + <details key="start" value="2280"/> + <details key="end" value="2360"/> + <details key="line" value="49"/> </eAnnotations> - <eAnnotations source="positions.67" references="/0/CppClassHeader/%.5"> - <details key="start" value="2240"/> - <details key="end" value="2250"/> + <eAnnotations source="positions.75" references="/0/CppClassHeader/%.5"> + <details key="start" value="2361"/> + <details key="end" value="2371"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.68" references="/0/CppClassHeader/%.5/class"> - <details key="start" value="2240"/> - <details key="end" value="2245"/> + <eAnnotations source="positions.76" references="/0/CppClassHeader/%.5/class"> + <details key="start" value="2361"/> + <details key="end" value="2366"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.69" references="/0/CppClassHeader/%.6"> - <details key="start" value="2252"/> - <details key="end" value="2330"/> - <details key="line" value="47"/> + <eAnnotations source="positions.77" references="/0/CppClassHeader/%.6"> + <details key="start" value="2373"/> + <details key="end" value="2451"/> + <details key="line" value="52"/> </eAnnotations> - <eAnnotations source="positions.70" references="/0/CppClassHeader/%.7"> - <details key="start" value="2331"/> - <details key="end" value="2375"/> + <eAnnotations source="positions.78" references="/0/CppClassHeader/%.7"> + <details key="start" value="2452"/> + <details key="end" value="2496"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.71" references="/0/CppClassHeader/%.7/%"> - <details key="start" value="2331"/> - <details key="end" value="2339"/> + <eAnnotations source="positions.79" references="/0/CppClassHeader/%.7/%"> + <details key="start" value="2452"/> + <details key="end" value="2460"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.72" references="/0/CppClassHeader/%.7/%/self"> + <eAnnotations source="positions.80" references="/0/CppClassHeader/%.7/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.73" references="/0/CppClassHeader/%.8"> - <details key="start" value="2377"/> - <details key="end" value="2379"/> - <details key="line" value="51"/> + <eAnnotations source="positions.81" references="/0/CppClassHeader/%.8"> + <details key="start" value="2498"/> + <details key="end" value="2500"/> + <details key="line" value="56"/> </eAnnotations> - <eAnnotations source="positions.74" references="/0/CppClassHeader/%.9"> - <details key="start" value="2380"/> - <details key="end" value="2412"/> + <eAnnotations source="positions.82" references="/0/CppClassHeader/%.9"> + <details key="start" value="2501"/> + <details key="end" value="2533"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.75" references="/0/CppClassHeader/%.9/self"> + <eAnnotations source="positions.83" references="/0/CppClassHeader/%.9/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.76" references="/0/CppClassHeader/%.10"> - <details key="start" value="2414"/> - <details key="end" value="2416"/> - <details key="line" value="53"/> + <eAnnotations source="positions.84" references="/0/CppClassHeader/%.10"> + <details key="start" value="2535"/> + <details key="end" value="2537"/> + <details key="line" value="58"/> </eAnnotations> - <eAnnotations source="positions.77" references="/0/CppClassHeader/%.11"> - <details key="start" value="2417"/> - <details key="end" value="2435"/> + <eAnnotations source="positions.85" references="/0/CppClassHeader/%.11"> + <details key="start" value="2538"/> + <details key="end" value="2556"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.78" references="/0/CppClassHeader/%.11/self"> + <eAnnotations source="positions.86" references="/0/CppClassHeader/%.11/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.79" references="/0/CppClassHeader/%.12"> - <details key="start" value="2437"/> - <details key="end" value="2439"/> - <details key="line" value="55"/> + <eAnnotations source="positions.87" references="/0/CppClassHeader/%.12"> + <details key="start" value="2558"/> + <details key="end" value="2560"/> + <details key="line" value="60"/> </eAnnotations> - <eAnnotations source="positions.80" references="/0/CppClassHeader/%.13"> - <details key="start" value="2440"/> - <details key="end" value="2448"/> + <eAnnotations source="positions.88" references="/0/CppClassHeader/%.13"> + <details key="start" value="2561"/> + <details key="end" value="2569"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.81" references="/0/CppClassHeader/%.13/self"> + <eAnnotations source="positions.89" references="/0/CppClassHeader/%.13/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.82" references="/0/CppClassHeader/%.14"> - <details key="start" value="2450"/> - <details key="end" value="2516"/> - <details key="line" value="56"/> + <eAnnotations source="positions.90" references="/0/CppClassHeader/%.14"> + <details key="start" value="2571"/> + <details key="end" value="2637"/> + <details key="line" value="61"/> </eAnnotations> - <eAnnotations source="positions.83" references="/0/CppClassHeader/%.15"> - <details key="start" value="2517"/> - <details key="end" value="2532"/> + <eAnnotations source="positions.91" references="/0/CppClassHeader/%.15"> + <details key="start" value="2638"/> + <details key="end" value="2653"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.84" references="/0/CppClassHeader/%.15/self"> + <eAnnotations source="positions.92" references="/0/CppClassHeader/%.15/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.85" references="/0/CppClassHeader/%.16"> - <details key="start" value="2534"/> - <details key="end" value="2535"/> - <details key="line" value="60"/> + <eAnnotations source="positions.93" references="/0/CppClassHeader/%.16"> + <details key="start" value="2655"/> + <details key="end" value="2656"/> + <details key="line" value="65"/> </eAnnotations> - <eAnnotations source="positions.86" references="/0/CppClassHeader/%.17"> - <details key="start" value="2536"/> - <details key="end" value="2555"/> + <eAnnotations source="positions.94" references="/0/CppClassHeader/%.17"> + <details key="start" value="2657"/> + <details key="end" value="2676"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.87" references="/0/CppClassHeader/%.17/self"> + <eAnnotations source="positions.95" references="/0/CppClassHeader/%.17/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.88" references="/0/CppClassHeader/%.18"> - <details key="start" value="2558"/> - <details key="end" value="2578"/> + <eAnnotations source="positions.96" references="/0/CppClassHeader/%.18"> + <details key="start" value="2679"/> + <details key="end" value="2699"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.89" references="/0/CppClassHeader/%.18/self"> + <eAnnotations source="positions.97" references="/0/CppClassHeader/%.18/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.90" references="/0/CppClassHeader/%.19"> - <details key="start" value="2580"/> - <details key="end" value="2581"/> - <details key="line" value="60"/> + <eAnnotations source="positions.98" references="/0/CppClassHeader/%.19"> + <details key="start" value="2701"/> + <details key="end" value="2702"/> + <details key="line" value="65"/> </eAnnotations> - <eAnnotations source="positions.91" references="/0/CppClassHeader/%.20"> - <details key="start" value="2582"/> - <details key="end" value="2592"/> + <eAnnotations source="positions.99" references="/0/CppClassHeader/%.20"> + <details key="start" value="2703"/> + <details key="end" value="2713"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.92" references="/0/CppClassHeader/%.20/class"> - <details key="start" value="2582"/> - <details key="end" value="2587"/> + <eAnnotations source="positions.100" references="/0/CppClassHeader/%.20/class"> + <details key="start" value="2703"/> + <details key="end" value="2708"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.93" references="/0/CppClassHeader/%.21"> - <details key="start" value="2595"/> - <details key="end" value="2626"/> + <eAnnotations source="positions.101" references="/0/CppClassHeader/%.21"> + <details key="start" value="2716"/> + <details key="end" value="2747"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.94" references="/0/CppClassHeader/%.21/self"> + <eAnnotations source="positions.102" references="/0/CppClassHeader/%.21/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.95" references="/0/CppClassHeader/%.22"> - <details key="start" value="2628"/> - <details key="end" value="2631"/> - <details key="line" value="60"/> + <eAnnotations source="positions.103" references="/0/CppClassHeader/%.22"> + <details key="start" value="2749"/> + <details key="end" value="2752"/> + <details key="line" value="65"/> </eAnnotations> - <eAnnotations source="positions.96" references="/0/CppClassHeader/%.23"> - <details key="start" value="2632"/> - <details key="end" value="2666"/> + <eAnnotations source="positions.104" references="/0/CppClassHeader/%.23"> + <details key="start" value="2753"/> + <details key="end" value="2787"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.97" references="/0/CppClassHeader/%.23/self"> + <eAnnotations source="positions.105" references="/0/CppClassHeader/%.23/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.98" references="/0/CppClassHeader/%.24"> - <details key="start" value="2669"/> - <details key="end" value="2690"/> + <eAnnotations source="positions.106" references="/0/CppClassHeader/%.24"> + <details key="start" value="2790"/> + <details key="end" value="2811"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.99" references="/0/CppClassHeader/%.24/self"> + <eAnnotations source="positions.107" references="/0/CppClassHeader/%.24/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.100" references="/0/CppClassHeader/%.25"> - <details key="start" value="2692"/> - <details key="end" value="2704"/> - <details key="line" value="62"/> + <eAnnotations source="positions.108" references="/0/CppClassHeader/%.25"> + <details key="start" value="2813"/> + <details key="end" value="2818"/> + <details key="line" value="67"/> + </eAnnotations> + <eAnnotations source="positions.109" references="/0/CppClassHeader/%.26"> + <details key="start" value="2819"/> + <details key="end" value="2874"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.101" references="/0/CppClassHeader/%.26"> - <details key="start" value="2705"/> - <details key="end" value="2725"/> + <eAnnotations source="positions.110" references="/0/CppClassHeader/%.26/%"> + <details key="start" value="2819"/> + <details key="end" value="2841"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.102" references="/0/CppClassHeader/%.26/self"> + <eAnnotations source="positions.111" references="/0/CppClassHeader/%.26/%.1"> + <details key="start" value="2853"/> + <details key="end" value="2873"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.112" 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.103" references="/0/CppClassHeader/%.27"> - <details key="start" value="2728"/> - <details key="end" value="2781"/> + <eAnnotations source="positions.113" references="/0/CppClassHeader/%.27"> + <details key="start" value="2876"/> + <details key="end" value="2881"/> + <details key="line" value="68"/> + </eAnnotations> + <eAnnotations source="positions.114" references="/0/CppClassHeader/%.28"> + <details key="start" value="2882"/> + <details key="end" value="2970"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.115" references="/0/CppClassHeader/%.28/%"> + <details key="start" value="2882"/> + <details key="end" value="2904"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.116" references="/0/CppClassHeader/%.28/%.1"> + <details key="start" value="2916"/> + <details key="end" value="2969"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.104" references="/0/CppClassHeader/%.27/self"> + <eAnnotations source="positions.117" 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.105" references="/0/CppClassHeader/%.27/%"> - <details key="start" value="2758"/> - <details key="end" value="2780"/> + <eAnnotations source="positions.118" references="/0/CppClassHeader/%.28/%.1/%"> + <details key="start" value="2946"/> + <details key="end" value="2968"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.106" references="/0/CppClassHeader/%.28"> - <details key="start" value="2784"/> - <details key="end" value="2837"/> + <eAnnotations source="positions.119" references="/0/CppClassHeader/%.29"> + <details key="start" value="2972"/> + <details key="end" value="2977"/> + <details key="line" value="69"/> + </eAnnotations> + <eAnnotations source="positions.120" references="/0/CppClassHeader/%.30"> + <details key="start" value="2978"/> + <details key="end" value="3066"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.121" references="/0/CppClassHeader/%.30/%"> + <details key="start" value="2978"/> + <details key="end" value="3000"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.107" references="/0/CppClassHeader/%.28/self"> + <eAnnotations source="positions.122" references="/0/CppClassHeader/%.30/%.1"> + <details key="start" value="3012"/> + <details key="end" value="3065"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.123" 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.108" references="/0/CppClassHeader/%.28/%"> - <details key="start" value="2814"/> - <details key="end" value="2836"/> + <eAnnotations source="positions.124" references="/0/CppClassHeader/%.30/%.1/%"> + <details key="start" value="3042"/> + <details key="end" value="3064"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.109" references="/0/CppClassHeader/%.29"> - <details key="start" value="2839"/> - <details key="end" value="2854"/> - <details key="line" value="65"/> + <eAnnotations source="positions.125" references="/0/CppClassHeader/%.31"> + <details key="start" value="3068"/> + <details key="end" value="3074"/> + <details key="line" value="70"/> + </eAnnotations> + <eAnnotations source="positions.126" references="/0/CppClassHeader/%.32"> + <details key="start" value="3075"/> + <details key="end" value="3169"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.127" references="/0/CppClassHeader/%.32/%"> + <details key="start" value="3075"/> + <details key="end" value="3100"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.110" references="/0/CppClassHeader/%.30"> - <details key="start" value="2855"/> - <details key="end" value="2911"/> + <eAnnotations source="positions.128" references="/0/CppClassHeader/%.32/%.1"> + <details key="start" value="3112"/> + <details key="end" value="3168"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.111" references="/0/CppClassHeader/%.30/self"> + <eAnnotations source="positions.129" 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.112" references="/0/CppClassHeader/%.30/%"> - <details key="start" value="2885"/> - <details key="end" value="2910"/> + <eAnnotations source="positions.130" references="/0/CppClassHeader/%.32/%.1/%"> + <details key="start" value="3142"/> + <details key="end" value="3167"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.113" references="/0/CppClassHeader/%.31"> - <details key="start" value="2914"/> - <details key="end" value="2970"/> + <eAnnotations source="positions.131" references="/0/CppClassHeader/%.33"> + <details key="start" value="3171"/> + <details key="end" value="3176"/> + <details key="line" value="72"/> + </eAnnotations> + <eAnnotations source="positions.132" references="/0/CppClassHeader/%.34"> + <details key="start" value="3177"/> + <details key="end" value="3271"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.133" references="/0/CppClassHeader/%.34/%"> + <details key="start" value="3177"/> + <details key="end" value="3202"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.134" references="/0/CppClassHeader/%.34/%.1"> + <details key="start" value="3214"/> + <details key="end" value="3270"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.114" references="/0/CppClassHeader/%.31/self"> + <eAnnotations source="positions.135" 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.115" references="/0/CppClassHeader/%.31/%"> - <details key="start" value="2944"/> - <details key="end" value="2969"/> + <eAnnotations source="positions.136" references="/0/CppClassHeader/%.34/%.1/%"> + <details key="start" value="3244"/> + <details key="end" value="3269"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.116" references="/0/CppClassHeader/%.32"> - <details key="start" value="2972"/> - <details key="end" value="2985"/> - <details key="line" value="68"/> + <eAnnotations source="positions.137" references="/0/CppClassHeader/%.35"> + <details key="start" value="3273"/> + <details key="end" value="3279"/> + <details key="line" value="73"/> + </eAnnotations> + <eAnnotations source="positions.138" references="/0/CppClassHeader/%.36"> + <details key="start" value="3280"/> + <details key="end" value="3370"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.117" references="/0/CppClassHeader/%.33"> - <details key="start" value="2986"/> - <details key="end" value="3040"/> + <eAnnotations source="positions.139" references="/0/CppClassHeader/%.36/%"> + <details key="start" value="3280"/> + <details key="end" value="3303"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.118" references="/0/CppClassHeader/%.33/self"> + <eAnnotations source="positions.140" references="/0/CppClassHeader/%.36/%.1"> + <details key="start" value="3315"/> + <details key="end" value="3369"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.141" 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.119" references="/0/CppClassHeader/%.33/%"> - <details key="start" value="3016"/> - <details key="end" value="3039"/> + <eAnnotations source="positions.142" references="/0/CppClassHeader/%.36/%.1/%"> + <details key="start" value="3345"/> + <details key="end" value="3368"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.120" references="/0/CppClassHeader/%.34"> - <details key="start" value="3043"/> - <details key="end" value="3097"/> + <eAnnotations source="positions.143" references="/0/CppClassHeader/%.37"> + <details key="start" value="3372"/> + <details key="end" value="3377"/> + <details key="line" value="75"/> + </eAnnotations> + <eAnnotations source="positions.144" references="/0/CppClassHeader/%.38"> + <details key="start" value="3378"/> + <details key="end" value="3468"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.121" references="/0/CppClassHeader/%.34/self"> + <eAnnotations source="positions.145" references="/0/CppClassHeader/%.38/%"> + <details key="start" value="3378"/> + <details key="end" value="3401"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.146" references="/0/CppClassHeader/%.38/%.1"> + <details key="start" value="3413"/> + <details key="end" value="3467"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.147" references="/0/CppClassHeader/%.38/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.122" references="/0/CppClassHeader/%.34/%"> - <details key="start" value="3073"/> - <details key="end" value="3096"/> + <eAnnotations source="positions.148" references="/0/CppClassHeader/%.38/%.1/%"> + <details key="start" value="3443"/> + <details key="end" value="3466"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.123" references="/0/CppClassHeader/%.35"> - <details key="start" value="3099"/> - <details key="end" value="3230"/> - <details key="line" value="71"/> + <eAnnotations source="positions.149" references="/0/CppClassHeader/%.39"> + <details key="start" value="3470"/> + <details key="end" value="3600"/> + <details key="line" value="76"/> </eAnnotations> - <eAnnotations source="positions.124" references="/0/CppClassHeader/%.36"> - <details key="start" value="3231"/> - <details key="end" value="3286"/> + <eAnnotations source="positions.150" references="/0/CppClassHeader/%.40"> + <details key="start" value="3601"/> + <details key="end" value="3656"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.125" references="/0/CppClassHeader/%.36/self"> + <eAnnotations source="positions.151" references="/0/CppClassHeader/%.40/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.126" references="/0/CppClassHeader/%.36/%"> - <details key="start" value="3261"/> - <details key="end" value="3285"/> + <eAnnotations source="positions.152" references="/0/CppClassHeader/%.40/%"> + <details key="start" value="3631"/> + <details key="end" value="3655"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.127" references="/0/CppClassHeader/%.37"> - <details key="start" value="3288"/> - <details key="end" value="3289"/> - <details key="line" value="76"/> + <eAnnotations source="positions.153" references="/0/CppClassHeader/%.41"> + <details key="start" value="3658"/> + <details key="end" value="3659"/> + <details key="line" value="80"/> </eAnnotations> - <eAnnotations source="positions.128" references="/0/CppClassHeader/%.38"> - <details key="start" value="3290"/> - <details key="end" value="3345"/> + <eAnnotations source="positions.154" references="/0/CppClassHeader/%.42"> + <details key="start" value="3660"/> + <details key="end" value="3715"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.129" references="/0/CppClassHeader/%.38/self"> + <eAnnotations source="positions.155" references="/0/CppClassHeader/%.42/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.130" references="/0/CppClassHeader/%.38/%"> - <details key="start" value="3320"/> - <details key="end" value="3344"/> + <eAnnotations source="positions.156" references="/0/CppClassHeader/%.42/%"> + <details key="start" value="3690"/> + <details key="end" value="3714"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.131" references="/0/CppClassHeader/%.39"> - <details key="start" value="3347"/> - <details key="end" value="3412"/> - <details key="line" value="77"/> + <eAnnotations source="positions.157" references="/0/CppClassHeader/%.43"> + <details key="start" value="3717"/> + <details key="end" value="3782"/> + <details key="line" value="81"/> </eAnnotations> - <eAnnotations source="positions.132" references="/0/CppClassHeader/%.40"> - <details key="start" value="3412"/> - <details key="end" value="3604"/> - <details key="line" value="79"/> + <eAnnotations source="positions.158" references="/0/CppClassHeader/%.44"> + <details key="start" value="3782"/> + <details key="end" value="3974"/> + <details key="line" value="83"/> </eAnnotations> - <eAnnotations source="positions.133" references="/0/CppClassHeader/%.40/%"> - <details key="start" value="3430"/> - <details key="end" value="3556"/> - <details key="line" value="80"/> + <eAnnotations source="positions.159" references="/0/CppClassHeader/%.44/%"> + <details key="start" value="3800"/> + <details key="end" value="3926"/> + <details key="line" value="84"/> </eAnnotations> - <eAnnotations source="positions.134" references="/0/CppClassHeader/%.40/%.1"> - <details key="start" value="3557"/> - <details key="end" value="3596"/> + <eAnnotations source="positions.160" references="/0/CppClassHeader/%.44/%.1"> + <details key="start" value="3927"/> + <details key="end" value="3966"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.135" references="/0/CppClassHeader/%.40/%.1/self"> + <eAnnotations source="positions.161" references="/0/CppClassHeader/%.44/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.136" references="/0/CppClassHeader/%.40/%.1/%"> - <details key="start" value="3590"/> - <details key="end" value="3595"/> + <eAnnotations source="positions.162" references="/0/CppClassHeader/%.44/%.1/%"> + <details key="start" value="3960"/> + <details key="end" value="3965"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.137" references="/0/CppClassHeader/%.40/%.2"> - <details key="start" value="3598"/> - <details key="end" value="3599"/> - <details key="line" value="83"/> + <eAnnotations source="positions.163" references="/0/CppClassHeader/%.44/%.2"> + <details key="start" value="3968"/> + <details key="end" value="3969"/> + <details key="line" value="87"/> </eAnnotations> - <eAnnotations source="positions.138" references="/0/CppClassHeader/%.40/%.3"> - <details key="start" value="3416"/> - <details key="end" value="3428"/> + <eAnnotations source="positions.164" references="/0/CppClassHeader/%.44/%.3"> + <details key="start" value="3786"/> + <details key="end" value="3798"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.139" references="/0/CppClassHeader/%.40/%.3/self"> + <eAnnotations source="positions.165" references="/0/CppClassHeader/%.44/%.3/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.140" references="/0/CppClassHeader/%.41"> - <details key="start" value="3605"/> - <details key="end" value="3669"/> - <details key="line" value="84"/> + <eAnnotations source="positions.166" references="/0/CppClassHeader/%.45"> + <details key="start" value="3975"/> + <details key="end" value="4039"/> + <details key="line" value="88"/> </eAnnotations> - <eAnnotations source="positions.141" references="/0/CppClassHeader/%.42"> - <details key="start" value="3670"/> - <details key="end" value="3708"/> + <eAnnotations source="positions.167" references="/0/CppClassHeader/%.46"> + <details key="start" value="4040"/> + <details key="end" value="4078"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.142" references="/0/CppClassHeader/%.42/self"> + <eAnnotations source="positions.168" references="/0/CppClassHeader/%.46/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.143" references="/0/CppClassHeader/%.42/%"> - <details key="start" value="3703"/> - <details key="end" value="3707"/> + <eAnnotations source="positions.169" references="/0/CppClassHeader/%.46/%"> + <details key="start" value="4073"/> + <details key="end" value="4077"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.144" references="/0/CppClassHeader/%.43"> - <details key="start" value="3710"/> - <details key="end" value="3711"/> - <details key="line" value="87"/> + <eAnnotations source="positions.170" references="/0/CppClassHeader/%.47"> + <details key="start" value="4080"/> + <details key="end" value="4081"/> + <details key="line" value="91"/> </eAnnotations> - <eAnnotations source="positions.145" references="/0/CppClassHeader/%.44"> - <details key="start" value="3712"/> - <details key="end" value="3721"/> + <eAnnotations source="positions.171" references="/0/CppClassHeader/%.48"> + <details key="start" value="4082"/> + <details key="end" value="4091"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.146" references="/0/CppClassHeader/%.44/self"> + <eAnnotations source="positions.172" references="/0/CppClassHeader/%.48/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.147" references="/0/CppClassHeader/%.45"> - <details key="start" value="3723"/> - <details key="end" value="3808"/> - <details key="line" value="88"/> + <eAnnotations source="positions.173" references="/0/CppClassHeader/%.49"> + <details key="start" value="4093"/> + <details key="end" value="4178"/> + <details key="line" value="92"/> </eAnnotations> - <eAnnotations source="positions.148" references="/0/CppClassHeader/%.46"> - <details key="start" value="3809"/> - <details key="end" value="3819"/> + <eAnnotations source="positions.174" references="/0/CppClassHeader/%.50"> + <details key="start" value="4179"/> + <details key="end" value="4189"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.149" references="/0/CppClassHeader/%.46/class"> - <details key="start" value="3809"/> - <details key="end" value="3814"/> + <eAnnotations source="positions.175" references="/0/CppClassHeader/%.50/class"> + <details key="start" value="4179"/> + <details key="end" value="4184"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.150" references="/0/CppClassHeader/%.47"> - <details key="start" value="3821"/> - <details key="end" value="3905"/> - <details key="line" value="90"/> + <eAnnotations source="positions.176" references="/0/CppClassHeader/%.51"> + <details key="start" value="4191"/> + <details key="end" value="4275"/> + <details key="line" value="94"/> </eAnnotations> - <eAnnotations source="positions.151" references="/0/CppClassHeader/class"> - <details key="start" value="2083"/> - <details key="end" value="2101"/> - <details key="line" value="42"/> + <eAnnotations source="positions.177" references="/0/CppClassHeader/class"> + <details key="start" value="2204"/> + <details key="end" value="2222"/> + <details key="line" value="47"/> </eAnnotations> </ecore:EAnnotation> </xmi:XMI> 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 daaa4609107..227947b9fd0 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 @@ -15,14 +15,19 @@ [import org::eclipse::papyrus::cpp::codegen::acceleo::util::CppDocumentation/] -[query public classUnionOrStruct(classifier : Classifier) : String = -if (hasStereotype(C_Cpp::Union)) then 'union' -else - if (oclIsKindOf(DataType)) then 'struct' - else 'class' - endif -endif -/] +[template public classUnionOrStruct(classifier : Classifier)] +[if (hasStereotype(C_Cpp::Union))] + 'union' +[else] + [if (oclIsKindOf(DataType))] + [VisibilityKind::public.resetVisibility()/] + struct + [else] + [VisibilityKind::private.resetVisibility()/] + class + [/if] +[/if] +[/template] [comment default initializer for non-static attributes with a default value TODO: should be disabled by default, since non-static members can be initialized directly @@ -59,16 +64,15 @@ in C++ 011/] [CppElementDoc()/] [templateSignature()/][classUnionOrStruct()/] [class.name/][CppClassInheritedDeclarations()/] { [CppClassIncludeFriendDeclaration()/][CppClassTypeAndEnum()/] + [VisibilityKind::public.getSection(defaultInitializer())/] + [VisibilityKind::public.getSection(CppClassAttributesDeclaration(VisibilityKind::public))/] + [VisibilityKind::public.getSection(CppClassOperationsDeclaration(VisibilityKind::public))/] - public: -[defaultInitializer()/][CppClassAttributesDeclaration(VisibilityKind::public)/][CppClassOperationsDeclaration(VisibilityKind::public)/] - - protected: -[CppClassAttributesDeclaration(VisibilityKind::protected)/][CppClassOperationsDeclaration(VisibilityKind::protected)/] - - private: -[CppClassAttributesDeclaration(VisibilityKind::private)/][CppClassOperationsDeclaration(VisibilityKind::private)/] + [VisibilityKind::protected.getSection(CppClassAttributesDeclaration(VisibilityKind::protected))/] + [VisibilityKind::protected.getSection(CppClassOperationsDeclaration(VisibilityKind::protected))/] + [VisibilityKind::private.getSection(CppClassAttributesDeclaration(VisibilityKind::private))/] + [VisibilityKind::private.getSection(CppClassOperationsDeclaration(VisibilityKind::private))/] }; /************************************************************/ /* External declarations (package visibility) */ 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 42153a03cb3..c34dc5733b0 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 @@ -521,6 +521,16 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> 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 0736992a685..4f51ef715f1 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 @@ -341,11 +341,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Namespace_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Namespace"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppAttribute.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppAttribute.emtl index 690ee92f29e..c540dba383d 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppAttribute.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppAttribute.emtl @@ -589,11 +589,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Parameter_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppDocumentation.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppDocumentation.emtl index 427adc024b0..f02c32f643c 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppDocumentation.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppDocumentation.emtl @@ -68,11 +68,50 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </parameter> </ownedModuleElement> + <ownedModuleElement xsi:type="mtl:Template" name="CppBehaviorDoc" visibility="Public"> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**
 * "/> + <body xsi:type="ocl.ecore:OperationCallExp"> + <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/getComments"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/22"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </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> + <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> + <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/replaceAll"/> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
 * "/> + <body xsi:type="mtl:ForBlock"> + <body xsi:type="mtl:TemplateInvocation" definition="/0/CppParamDoc"> + <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="/25"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </argument> + </body> + <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/12/OrderedSet(Parameter)"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </source> + <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior/ownedParameter"/> + </iterSet> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
 */"/> + <parameter name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </parameter> + </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Template" name="CppParamDoc" visibility="Public"> <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="@param "/> <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="/22"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/32"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> </source> <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> @@ -83,7 +122,11 @@ <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/getComments"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/23"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/33"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> </argument> </source> @@ -140,6 +183,16 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorDoc"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL" references="/0/CppBehaviorDoc"/> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + </eOperations> <eOperations name="CppParamDoc"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -193,6 +246,11 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Parameter_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> @@ -223,6 +281,11 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> @@ -278,6 +341,36 @@ <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/4.0.0/UML#//Behavior"/> + </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/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </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> + <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> </ocl.ecore:Variable> <ocl.ecore:Variable name="self"> @@ -416,60 +509,135 @@ <details key="end" value="295"/> <details key="line" value="12"/> </eAnnotations> - <eAnnotations source="positions.24" references="/0/CppParamDoc"> + <eAnnotations source="positions.24" references="/0/CppBehaviorDoc"> <details key="start" value="414"/> - <details key="end" value="539"/> + <details key="end" value="581"/> <details key="line" value="20"/> </eAnnotations> - <eAnnotations source="positions.25" references="/0/CppParamDoc/%"> - <details key="start" value="467"/> - <details key="end" value="474"/> + <eAnnotations source="positions.25" references="/0/CppBehaviorDoc/%"> + <details key="start" value="468"/> + <details key="end" value="475"/> <details key="line" value="21"/> </eAnnotations> - <eAnnotations source="positions.26" references="/0/CppParamDoc/%.1"> - <details key="start" value="475"/> - <details key="end" value="479"/> + <eAnnotations source="positions.26" references="/0/CppBehaviorDoc/%.1"> + <details key="start" value="476"/> + <details key="end" value="515"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.27" references="/0/CppBehaviorDoc/%.1/%"> + <details key="start" value="476"/> + <details key="end" value="489"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.27" references="/0/CppParamDoc/%.1/self"> + <eAnnotations source="positions.28" references="/0/CppBehaviorDoc/%.1/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.28" references="/0/CppParamDoc/%.2"> - <details key="start" value="481"/> - <details key="end" value="482"/> - <details key="line" value="21"/> + <eAnnotations source="positions.29" references="/0/CppBehaviorDoc/%.1/%.1"> + <details key="start" value="501"/> + <details key="end" value="505"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.29" references="/0/CppParamDoc/%.3"> - <details key="start" value="483"/> - <details key="end" value="525"/> + <eAnnotations source="positions.30" references="/0/CppBehaviorDoc/%.1/%.2"> + <details key="start" value="507"/> + <details key="end" value="514"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.30" references="/0/CppParamDoc/%.3/%"> - <details key="start" value="483"/> - <details key="end" value="496"/> + <eAnnotations source="positions.31" references="/0/CppBehaviorDoc/%.2"> + <details key="start" value="517"/> + <details key="end" value="521"/> + <details key="line" value="23"/> + </eAnnotations> + <eAnnotations source="positions.32" references="/0/CppBehaviorDoc/%.3"> + <details key="start" value="521"/> + <details key="end" value="565"/> + <details key="line" value="23"/> + </eAnnotations> + <eAnnotations source="positions.33" references="/0/CppBehaviorDoc/%.3/%"> + <details key="start" value="544"/> + <details key="end" value="557"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.31" references="/0/CppParamDoc/%.3/%/self"> + <eAnnotations source="positions.34" references="/0/CppBehaviorDoc/%.3/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.32" references="/0/CppParamDoc/%.3/%.1"> - <details key="start" value="508"/> - <details key="end" value="512"/> + <eAnnotations source="positions.35" references="/0/CppBehaviorDoc/%.3/%.1"> + <details key="start" value="527"/> + <details key="end" value="541"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.33" references="/0/CppParamDoc/%.3/%.2"> - <details key="start" value="514"/> - <details key="end" value="524"/> + <eAnnotations source="positions.36" references="/0/CppBehaviorDoc/%.3/%.1/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.34" references="/0/CppParamDoc/parameter"> - <details key="start" value="443"/> - <details key="end" value="464"/> + <eAnnotations source="positions.37" references="/0/CppBehaviorDoc/%.4"> + <details key="start" value="565"/> + <details key="end" value="569"/> + <details key="line" value="24"/> + </eAnnotations> + <eAnnotations source="positions.38" references="/0/CppBehaviorDoc/behavior"> + <details key="start" value="446"/> + <details key="end" value="465"/> <details key="line" value="20"/> </eAnnotations> + <eAnnotations source="positions.39" references="/0/CppParamDoc"> + <details key="start" value="584"/> + <details key="end" value="709"/> + <details key="line" value="28"/> + </eAnnotations> + <eAnnotations source="positions.40" references="/0/CppParamDoc/%"> + <details key="start" value="637"/> + <details key="end" value="644"/> + <details key="line" value="29"/> + </eAnnotations> + <eAnnotations source="positions.41" references="/0/CppParamDoc/%.1"> + <details key="start" value="645"/> + <details key="end" value="649"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.42" references="/0/CppParamDoc/%.1/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.43" references="/0/CppParamDoc/%.2"> + <details key="start" value="651"/> + <details key="end" value="652"/> + <details key="line" value="29"/> + </eAnnotations> + <eAnnotations source="positions.44" references="/0/CppParamDoc/%.3"> + <details key="start" value="653"/> + <details key="end" value="695"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.45" references="/0/CppParamDoc/%.3/%"> + <details key="start" value="653"/> + <details key="end" value="666"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.46" references="/0/CppParamDoc/%.3/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.47" references="/0/CppParamDoc/%.3/%.1"> + <details key="start" value="678"/> + <details key="end" value="682"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.48" references="/0/CppParamDoc/%.3/%.2"> + <details key="start" value="684"/> + <details key="end" value="694"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.49" references="/0/CppParamDoc/parameter"> + <details key="start" value="613"/> + <details key="end" value="634"/> + <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/CppDocumentation.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppDocumentation.mtl index 579035053b6..ecc23674b2c 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppDocumentation.mtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppDocumentation.mtl @@ -17,6 +17,14 @@ [/template] +[template public CppBehaviorDoc(behavior : Behavior)] +/** + * [getComments().replaceAll('\n', '\n * ')/] + * [for (ownedParameter)][CppParamDoc()/][/for] + */ +[/template] + + [template public CppParamDoc(parameter : Parameter)] @param [name/] [getComments().replaceAll('\n', '\n * ')/] [/template] diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppEnumerations.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppEnumerations.emtl index 01c66f4a8a5..d4345db8a65 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppEnumerations.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppEnumerations.emtl @@ -224,6 +224,16 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Parameter_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppPrimitiveTypes.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppPrimitiveTypes.emtl index 9ce59ae87e2..def468db99a 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppPrimitiveTypes.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppPrimitiveTypes.emtl @@ -279,6 +279,21 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Parameter_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppTemplates.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppTemplates.emtl index e6ee0f938dd..ebc4cb70fb0 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppTemplates.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/CppTemplates.emtl @@ -376,11 +376,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassFriendDeclaration.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassFriendDeclaration.emtl index 27efaf43084..66d52bdae88 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassFriendDeclaration.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassFriendDeclaration.emtl @@ -210,11 +210,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> 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 a76899974b6..182fe336b92 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 @@ -483,11 +483,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> 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 955bf835784..24d14dd0bdb 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 @@ -368,6 +368,16 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassInheritedDeclarations.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassInheritedDeclarations.emtl index ceb8ba59ce9..08f2e3c32d2 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassInheritedDeclarations.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassInheritedDeclarations.emtl @@ -343,11 +343,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.emtl index d5881c6a4cc..050bd67f409 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.emtl @@ -42,6 +42,63 @@ </iterator> </iterSet> </body> + <body xsi:type="mtl:ForBlock"> + <body xsi:type="mtl:IfBlock"> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
	// opaque behavior without specification (typically from state machine)
	"/> + <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="../operation/CppOperations.emtl#/0/CppBehaviorDeclaration"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/16"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/> + <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:PropertyCallExp"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/> + <source xsi:type="ocl.ecore:VariableExp" name="b" referredVariable="/0/CppClassOperationsDeclaration/%.1/b"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </source> + <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior/specification"/> + </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/="/> + </ifExpr> + </body> + <loopVariable name="b"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </loopVariable> + <iterSet xsi:type="ocl.ecore:IteratorExp" name="select" eType="/6/Sequence(OpaqueBehavior)"> + <source xsi:type="ocl.ecore:OperationCallExp" eType="/6/Sequence(OpaqueBehavior)" referredOperation="/1/EObject_Class/eAllContents"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </source> + <argument xsi:type="ocl.ecore:TypeExp" eType="/12/OpaqueBehavior"> + <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + </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:PropertyCallExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/CppClassOperationsDeclaration/%.1/select/temp2"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </source> + <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/visibility"/> + </source> + <argument xsi:type="ocl.ecore:VariableExp" name="visibilityFilter" referredVariable="/0/CppClassOperationsDeclaration/visibilityFilter"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </argument> + <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/="/> + </body> + <iterator xsi:type="ocl.ecore:Variable" name="temp2"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </iterator> + </iterSet> + </body> <parameter name="class"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </parameter> @@ -70,6 +127,13 @@ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> </eAnnotations> + <eOperations name="eAllContents"> + <eAnnotations source="MTL non-standard"/> + <eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/acceleo/mtl/3.0/mtlnonstdlib.ecore#//Sequence(OclAny)"/> + <eParameters name="filter"> + <eType xsi:type="ocl.ecore:TypeType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclType"/> + </eParameters> + </eOperations> <eOperations name="CppClassOperationsDeclaration"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -95,6 +159,18 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorDeclaration"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL"> + <references href="../operation/CppOperations.emtl#/0/CppBehaviorDeclaration"/> + </eAnnotations> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + </eOperations> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="OclAny_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> @@ -126,11 +202,21 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Element_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> @@ -148,6 +234,12 @@ <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Operation)" instanceClassName="java.util.Set"> <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </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> + <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OpaqueBehavior)" instanceClassName="java.util.List"> + <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> @@ -164,13 +256,36 @@ <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> + <ecore:EPackage name="types"> + <eClassifiers xsi:type="ocl.ecore:TypeType" name="OpaqueBehavior"> + <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eClassifiers> + </ecore:EPackage> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.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/CppClassOperationsDeclaration"> <details key="start" value="170"/> - <details key="end" value="386"/> + <details key="end" value="625"/> <details key="line" value="5"/> </eAnnotations> <eAnnotations source="positions.1" references="/0/CppClassOperationsDeclaration/%"> @@ -238,12 +353,112 @@ <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.14" references="/0/CppClassOperationsDeclaration/class"> + <eAnnotations source="positions.14" references="/0/CppClassOperationsDeclaration/%.1"> + <details key="start" value="375"/> + <details key="end" value="613"/> + <details key="line" value="10"/> + </eAnnotations> + <eAnnotations source="positions.15" references="/0/CppClassOperationsDeclaration/%.1/%"> + <details key="start" value="467"/> + <details key="end" value="606"/> + <details key="line" value="11"/> + </eAnnotations> + <eAnnotations source="positions.16" references="/0/CppClassOperationsDeclaration/%.1/%/%"> + <details key="start" value="497"/> + <details key="end" value="572"/> + <details key="line" value="12"/> + </eAnnotations> + <eAnnotations source="positions.17" references="/0/CppClassOperationsDeclaration/%.1/%/%.1"> + <details key="start" value="573"/> + <details key="end" value="597"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.18" references="/0/CppClassOperationsDeclaration/%.1/%/%.1/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.19" references="/0/CppClassOperationsDeclaration/%.1/%/%.2"> + <details key="start" value="599"/> + <details key="end" value="600"/> + <details key="line" value="15"/> + </eAnnotations> + <eAnnotations source="positions.20" references="/0/CppClassOperationsDeclaration/%.1/%/%.3"> + <details key="start" value="471"/> + <details key="end" value="495"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.21" references="/0/CppClassOperationsDeclaration/%.1/%/%.3/%"> + <details key="start" value="472"/> + <details key="end" value="487"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.22" references="/0/CppClassOperationsDeclaration/%.1/%/%.3/%/b"> + <details key="start" value="472"/> + <details key="end" value="473"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.23" references="/0/CppClassOperationsDeclaration/%.1/%/%.3/%.1"> + <details key="start" value="490"/> + <details key="end" value="494"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.24" references="/0/CppClassOperationsDeclaration/%.1/b"> + <details key="start" value="381"/> + <details key="end" value="393"/> + <details key="line" value="10"/> + </eAnnotations> + <eAnnotations source="positions.25" references="/0/CppClassOperationsDeclaration/%.1/select"> + <details key="start" value="396"/> + <details key="end" value="463"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.26" references="/0/CppClassOperationsDeclaration/%.1/select/%"> + <details key="start" value="396"/> + <details key="end" value="424"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.27" references="/0/CppClassOperationsDeclaration/%.1/select/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.28" references="/0/CppClassOperationsDeclaration/%.1/select/%/%"> + <details key="start" value="409"/> + <details key="end" value="423"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.29" references="/0/CppClassOperationsDeclaration/%.1/select/%.1"> + <details key="start" value="433"/> + <details key="end" value="462"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.30" references="/0/CppClassOperationsDeclaration/%.1/select/%.1/%"> + <details key="start" value="433"/> + <details key="end" value="443"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.31" references="/0/CppClassOperationsDeclaration/%.1/select/%.1/%/temp1"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.32" references="/0/CppClassOperationsDeclaration/%.1/select/%.1/visibilityFilter"> + <details key="start" value="446"/> + <details key="end" value="462"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.33" references="/0/CppClassOperationsDeclaration/%.1/select/temp2"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.34" references="/0/CppClassOperationsDeclaration/class"> <details key="start" value="217"/> <details key="end" value="235"/> <details key="line" value="5"/> </eAnnotations> - <eAnnotations source="positions.15" references="/0/CppClassOperationsDeclaration/visibilityFilter"> + <eAnnotations source="positions.35" references="/0/CppClassOperationsDeclaration/visibilityFilter"> <details key="start" value="237"/> <details key="end" value="270"/> <details key="line" value="5"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.mtl index bc129027d9f..a73127c132a 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.mtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsDeclaration.mtl @@ -7,4 +7,11 @@ [CppOperationDeclaration()/] [/for] +[for (b : Behavior | eAllContents(OpaqueBehavior)->select(visibility = visibilityFilter))] + [if (b.specification = null)] + + // opaque behavior without specification (typically from state machine) + [CppBehaviorDeclaration()/] + [/if] +[/for] [/template] diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.emtl index 28113103aec..ce3c9c9a852 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.emtl @@ -81,6 +81,66 @@ </iterator> </iterSet> </body> + <body xsi:type="mtl:ForBlock"> + <body xsi:type="mtl:IfBlock"> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
// opaque behavior without specification (typically from state machine)
"/> + <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="../operation/CppOperations.emtl#/0/CppBehaviorImplementation"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/16"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/> + <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:PropertyCallExp"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature"/> + <source xsi:type="ocl.ecore:VariableExp" name="b" referredVariable="/0/CppClassOperationsImplementation/%.1/b"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </source> + <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior/specification"/> + </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/="/> + </ifExpr> + </body> + <loopVariable name="b"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </loopVariable> + <iterSet xsi:type="ocl.ecore:IteratorExp" name="select" eType="/6/Sequence(OpaqueBehavior)"> + <source xsi:type="ocl.ecore:OperationCallExp" eType="/6/Sequence(OpaqueBehavior)" referredOperation="/1/EObject_Class/eAllContents"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/13"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </source> + <argument xsi:type="ocl.ecore:TypeExp" eType="/7/OpaqueBehavior"> + <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + </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="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="temp1" referredVariable="/0/CppClassOperationsImplementation/%.1/select/temp2"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + <argument xsi:type="ocl.ecore:TypeExp" eType="/7/Inline"> + <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Inline"/> + </argument> + </source> + <argument xsi:type="ocl.ecore:VariableExp" name="inline" referredVariable="/0/CppClassOperationsImplementation/inline"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> + </argument> + <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/="/> + </body> + <iterator xsi:type="ocl.ecore:Variable" name="temp2"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </iterator> + </iterSet> + </body> <parameter name="class"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> </parameter> @@ -109,6 +169,13 @@ <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> </eAnnotations> + <eOperations name="eAllContents"> + <eAnnotations source="MTL non-standard"/> + <eType xsi:type="ocl.ecore:SequenceType" href="http://www.eclipse.org/acceleo/mtl/3.0/mtlnonstdlib.ecore#//Sequence(OclAny)"/> + <eParameters name="filter"> + <eType xsi:type="ocl.ecore:TypeType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclType"/> + </eParameters> + </eOperations> <eOperations name="CppClassOperationsImplementation"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -149,6 +216,18 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorImplementation"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL"> + <references href="../operation/CppOperations.emtl#/0/CppBehaviorImplementation"/> + </eAnnotations> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eParameters> + </eOperations> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="OclAny_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> @@ -205,6 +284,16 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> @@ -222,6 +311,12 @@ <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Operation)" instanceClassName="java.util.Set"> <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </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> + <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(OpaqueBehavior)" instanceClassName="java.util.List"> + <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eClassifiers> </ecore:EPackage> <ecore:EPackage name="types"> <eClassifiers xsi:type="ocl.ecore:TypeType" name="NoCodeGen"> @@ -230,6 +325,9 @@ <eClassifiers xsi:type="ocl.ecore:TypeType" name="Inline"> <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/C_Cpp/1#//Inline"/> </eClassifiers> + <eClassifiers xsi:type="ocl.ecore:TypeType" name="OpaqueBehavior"> + <referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> @@ -247,6 +345,24 @@ <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/4.0.0/UML#//Classifier"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.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"> @@ -257,7 +373,7 @@ </eAnnotations> <eAnnotations source="positions.1" references="/0/CppClassOperationsImplementation"> <details key="start" value="396"/> - <details key="end" value="665"/> + <details key="end" value="924"/> <details key="line" value="8"/> </eAnnotations> <eAnnotations source="positions.2" references="/0/CppClassOperationsImplementation/%"> @@ -370,12 +486,117 @@ <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.24" references="/0/CppClassOperationsImplementation/class"> + <eAnnotations source="positions.24" references="/0/CppClassOperationsImplementation/%.1"> + <details key="start" value="654"/> + <details key="end" value="912"/> + <details key="line" value="15"/> + </eAnnotations> + <eAnnotations source="positions.25" references="/0/CppClassOperationsImplementation/%.1/%"> + <details key="start" value="765"/> + <details key="end" value="905"/> + <details key="line" value="17"/> + </eAnnotations> + <eAnnotations source="positions.26" references="/0/CppClassOperationsImplementation/%.1/%/%"> + <details key="start" value="795"/> + <details key="end" value="868"/> + <details key="line" value="18"/> + </eAnnotations> + <eAnnotations source="positions.27" references="/0/CppClassOperationsImplementation/%.1/%/%.1"> + <details key="start" value="869"/> + <details key="end" value="896"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.28" references="/0/CppClassOperationsImplementation/%.1/%/%.1/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.29" references="/0/CppClassOperationsImplementation/%.1/%/%.2"> + <details key="start" value="898"/> + <details key="end" value="899"/> + <details key="line" value="21"/> + </eAnnotations> + <eAnnotations source="positions.30" references="/0/CppClassOperationsImplementation/%.1/%/%.3"> + <details key="start" value="769"/> + <details key="end" value="793"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.31" references="/0/CppClassOperationsImplementation/%.1/%/%.3/%"> + <details key="start" value="770"/> + <details key="end" value="785"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.32" references="/0/CppClassOperationsImplementation/%.1/%/%.3/%/b"> + <details key="start" value="770"/> + <details key="end" value="771"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.33" references="/0/CppClassOperationsImplementation/%.1/%/%.3/%.1"> + <details key="start" value="788"/> + <details key="end" value="792"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.34" references="/0/CppClassOperationsImplementation/%.1/b"> + <details key="start" value="660"/> + <details key="end" value="678"/> + <details key="line" value="15"/> + </eAnnotations> + <eAnnotations source="positions.35" references="/0/CppClassOperationsImplementation/%.1/select"> + <details key="start" value="681"/> + <details key="end" value="761"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.36" references="/0/CppClassOperationsImplementation/%.1/select/%"> + <details key="start" value="681"/> + <details key="end" value="709"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.37" references="/0/CppClassOperationsImplementation/%.1/select/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.38" references="/0/CppClassOperationsImplementation/%.1/select/%/%"> + <details key="start" value="694"/> + <details key="end" value="708"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.39" references="/0/CppClassOperationsImplementation/%.1/select/%.1"> + <details key="start" value="721"/> + <details key="end" value="760"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.40" references="/0/CppClassOperationsImplementation/%.1/select/%.1/%"> + <details key="start" value="722"/> + <details key="end" value="750"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.41" references="/0/CppClassOperationsImplementation/%.1/select/%.1/%/temp1"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.42" references="/0/CppClassOperationsImplementation/%.1/select/%.1/%/%"> + <details key="start" value="736"/> + <details key="end" value="749"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.43" references="/0/CppClassOperationsImplementation/%.1/select/%.1/inline"> + <details key="start" value="753"/> + <details key="end" value="759"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.44" references="/0/CppClassOperationsImplementation/%.1/select/temp2"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.45" references="/0/CppClassOperationsImplementation/class"> <details key="start" value="446"/> <details key="end" value="464"/> <details key="line" value="8"/> </eAnnotations> - <eAnnotations source="positions.25" references="/0/CppClassOperationsImplementation/inline"> + <eAnnotations source="positions.46" references="/0/CppClassOperationsImplementation/inline"> <details key="start" value="466"/> <details key="end" value="482"/> <details key="line" value="8"/> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.mtl index 1f67d8afc62..fc54cddb7de 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.mtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassOperationsImplementation.mtl @@ -12,4 +12,12 @@ [CppOperationImplementation()/] [/for] +[for (b : OpaqueBehavior | eAllContents(OpaqueBehavior)->select( + (hasStereotype(C_Cpp::Inline) = inline)))] + [if (b.specification = null)] + +// opaque behavior without specification (typically from state machine) +[CppBehaviorImplementation()/] + [/if] +[/for] [/template] diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.emtl index 1358ce3dc3e..87f12d18900 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.emtl @@ -8,6 +8,10 @@ <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"/> +<<<<<<< HEAD +======= + <imports href="platform:/plugin/utils/CppGenUtils.emtl#/0"/> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <imports href="../CppPrimitiveTypes.emtl#/0"/> <imports href="../CppEnumerations.emtl#/0"/> <ownedModuleElement xsi:type="mtl:Template" name="TypeAndEnumForVisibility" visibility="Public"> @@ -153,38 +157,62 @@ </parameter> </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Template" name="CppClassTypeAndEnum" visibility="Public"> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" public:
	"/> - <body xsi:type="mtl:TemplateInvocation" definition="/0/TypesAndEnumsForVisibility"> + <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"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/26"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="platform:/plugin/utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> </argument> + <argument xsi:type="mtl:TemplateInvocation" definition="/0/TypesAndEnumsForVisibility"> + <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="/26"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/public"/> + </argument> + </argument> </body> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
 protected:
	"/> - <body xsi:type="mtl:TemplateInvocation" definition="/0/TypesAndEnumsForVisibility"> + <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"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/27"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="platform:/plugin/utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/protected"/> </argument> + <argument xsi:type="mtl:TemplateInvocation" definition="/0/TypesAndEnumsForVisibility"> + <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="/27"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/protected"/> + </argument> + </argument> </body> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
 private:
	"/> - <body xsi:type="mtl:TemplateInvocation" definition="/0/TypesAndEnumsForVisibility"> + <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"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/28"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> - </argument> + <definition href="platform:/plugin/utils/CppGenUtils.emtl#/0/getSection"/> <argument xsi:type="ocl.ecore:EnumLiteralExp"> <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/private"/> </argument> + <argument xsi:type="mtl:TemplateInvocation" definition="/0/TypesAndEnumsForVisibility"> + <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"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </argument> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind/private"/> + </argument> + </argument> </body> <parameter name="class"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> @@ -298,6 +326,21 @@ <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/> </eParameters> </eOperations> + <eOperations name="getSection"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL"> + <references href="platform:/plugin/utils/CppGenUtils.emtl#/0/getSection"/> + </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:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eParameters> + <eParameters name="arg1"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </eParameters> + </eOperations> <eOperations name="CppPrimitiveTypeDefinition"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -383,11 +426,26 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Enumeration_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Enumeration"/> @@ -511,28 +569,28 @@ </ocl.ecore:Variable> <ecore:EAnnotation source="positions"> <eAnnotations source="positions.0" references="/0/TypeAndEnumForVisibility"> - <details key="start" value="323"/> - <details key="end" value="745"/> - <details key="line" value="6"/> + <details key="start" value="389"/> + <details key="end" value="811"/> + <details key="line" value="7"/> </eAnnotations> <eAnnotations source="positions.1" references="/0/TypeAndEnumForVisibility/%"> - <details key="start" value="420"/> - <details key="end" value="733"/> - <details key="line" value="7"/> + <details key="start" value="486"/> + <details key="end" value="799"/> + <details key="line" value="8"/> </eAnnotations> <eAnnotations source="positions.2" references="/0/TypeAndEnumForVisibility/%/%"> - <details key="start" value="540"/> - <details key="end" value="630"/> - <details key="line" value="8"/> + <details key="start" value="606"/> + <details key="end" value="696"/> + <details key="line" value="9"/> </eAnnotations> <eAnnotations source="positions.3" references="/0/TypeAndEnumForVisibility/%/%/%"> - <details key="start" value="574"/> - <details key="end" value="623"/> + <details key="start" value="640"/> + <details key="end" value="689"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.4" references="/0/TypeAndEnumForVisibility/%/%/%/%"> - <details key="start" value="574"/> - <details key="end" value="596"/> + <details key="start" value="640"/> + <details key="end" value="662"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.5" references="/0/TypeAndEnumForVisibility/%/%/%/%/self"> @@ -541,13 +599,13 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.6" references="/0/TypeAndEnumForVisibility/%/%/%/%/%"> - <details key="start" value="584"/> - <details key="end" value="595"/> + <details key="start" value="650"/> + <details key="end" value="661"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.7" references="/0/TypeAndEnumForVisibility/%/%/%.1"> - <details key="start" value="546"/> - <details key="end" value="572"/> + <details key="start" value="612"/> + <details key="end" value="638"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.8" references="/0/TypeAndEnumForVisibility/%/%/%.1/self"> @@ -556,28 +614,28 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.9" references="/0/TypeAndEnumForVisibility/%/%/%.1/%"> - <details key="start" value="559"/> - <details key="end" value="570"/> + <details key="start" value="625"/> + <details key="end" value="636"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.10" references="/0/TypeAndEnumForVisibility/%/%.1"> - <details key="start" value="630"/> - <details key="end" value="631"/> - <details key="line" value="9"/> + <details key="start" value="696"/> + <details key="end" value="697"/> + <details key="line" value="10"/> </eAnnotations> <eAnnotations source="positions.11" references="/0/TypeAndEnumForVisibility/%/%.2"> - <details key="start" value="631"/> - <details key="end" value="727"/> - <details key="line" value="9"/> + <details key="start" value="697"/> + <details key="end" value="793"/> + <details key="line" value="10"/> </eAnnotations> <eAnnotations source="positions.12" references="/0/TypeAndEnumForVisibility/%/%.2/%"> - <details key="start" value="667"/> - <details key="end" value="720"/> + <details key="start" value="733"/> + <details key="end" value="786"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.13" references="/0/TypeAndEnumForVisibility/%/%.2/%/%"> - <details key="start" value="667"/> - <details key="end" value="691"/> + <details key="start" value="733"/> + <details key="end" value="757"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.14" references="/0/TypeAndEnumForVisibility/%/%.2/%/%/self"> @@ -586,13 +644,13 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.15" references="/0/TypeAndEnumForVisibility/%/%.2/%/%/%"> - <details key="start" value="677"/> - <details key="end" value="690"/> + <details key="start" value="743"/> + <details key="end" value="756"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.16" references="/0/TypeAndEnumForVisibility/%/%.2/%.1"> - <details key="start" value="637"/> - <details key="end" value="665"/> + <details key="start" value="703"/> + <details key="end" value="731"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.17" references="/0/TypeAndEnumForVisibility/%/%.2/%.1/self"> @@ -601,33 +659,33 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.18" references="/0/TypeAndEnumForVisibility/%/%.2/%.1/%"> - <details key="start" value="650"/> - <details key="end" value="663"/> + <details key="start" value="716"/> + <details key="end" value="729"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.19" references="/0/TypeAndEnumForVisibility/%/%.3"> - <details key="start" value="727"/> - <details key="end" value="728"/> - <details key="line" value="10"/> + <details key="start" value="793"/> + <details key="end" value="794"/> + <details key="line" value="11"/> </eAnnotations> <eAnnotations source="positions.20" references="/0/TypeAndEnumForVisibility/%/%.4"> - <details key="start" value="424"/> - <details key="end" value="538"/> + <details key="start" value="490"/> + <details key="end" value="604"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.21" references="/0/TypeAndEnumForVisibility/%/%.4/%"> - <details key="start" value="425"/> - <details key="end" value="481"/> + <details key="start" value="491"/> + <details key="end" value="547"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.22" references="/0/TypeAndEnumForVisibility/%/%.4/%/%"> - <details key="start" value="425"/> - <details key="end" value="453"/> + <details key="start" value="491"/> + <details key="end" value="519"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.23" references="/0/TypeAndEnumForVisibility/%/%.4/%/%/%"> - <details key="start" value="429"/> - <details key="end" value="453"/> + <details key="start" value="495"/> + <details key="end" value="519"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.24" references="/0/TypeAndEnumForVisibility/%/%.4/%/%/%/self"> @@ -636,13 +694,13 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.25" references="/0/TypeAndEnumForVisibility/%/%.4/%/%/%/%"> - <details key="start" value="443"/> - <details key="end" value="452"/> + <details key="start" value="509"/> + <details key="end" value="518"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.26" references="/0/TypeAndEnumForVisibility/%/%.4/%/%.1"> - <details key="start" value="458"/> - <details key="end" value="481"/> + <details key="start" value="524"/> + <details key="end" value="547"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.27" references="/0/TypeAndEnumForVisibility/%/%.4/%/%.1/self"> @@ -651,23 +709,23 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.28" references="/0/TypeAndEnumForVisibility/%/%.4/%/%.1/%"> - <details key="start" value="470"/> - <details key="end" value="480"/> + <details key="start" value="536"/> + <details key="end" value="546"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.29" references="/0/TypeAndEnumForVisibility/%/%.4/%.1"> - <details key="start" value="486"/> - <details key="end" value="537"/> + <details key="start" value="552"/> + <details key="end" value="603"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.30" references="/0/TypeAndEnumForVisibility/%/%.4/%.1/%"> - <details key="start" value="486"/> - <details key="end" value="518"/> + <details key="start" value="552"/> + <details key="end" value="584"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.31" references="/0/TypeAndEnumForVisibility/%/%.4/%.1/%/%"> - <details key="start" value="486"/> - <details key="end" value="507"/> + <details key="start" value="552"/> + <details key="end" value="573"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.32" references="/0/TypeAndEnumForVisibility/%/%.4/%.1/%/%/self"> @@ -676,38 +734,38 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.33" references="/0/TypeAndEnumForVisibility/%/%.4/%.1/%/%/%"> - <details key="start" value="496"/> - <details key="end" value="506"/> + <details key="start" value="562"/> + <details key="end" value="572"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.34" references="/0/TypeAndEnumForVisibility/%/%.4/%.1/visibilityFilter"> - <details key="start" value="521"/> - <details key="end" value="537"/> + <details key="start" value="587"/> + <details key="end" value="603"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.35" references="/0/TypeAndEnumForVisibility/element"> - <details key="start" value="365"/> - <details key="end" value="382"/> - <details key="line" value="6"/> + <details key="start" value="431"/> + <details key="end" value="448"/> + <details key="line" value="7"/> </eAnnotations> <eAnnotations source="positions.36" references="/0/TypeAndEnumForVisibility/visibilityFilter"> - <details key="start" value="384"/> - <details key="end" value="417"/> - <details key="line" value="6"/> + <details key="start" value="450"/> + <details key="end" value="483"/> + <details key="line" value="7"/> </eAnnotations> <eAnnotations source="positions.37" references="/0/TypesAndEnumsForVisibility"> - <details key="start" value="747"/> - <details key="end" value="926"/> - <details key="line" value="13"/> + <details key="start" value="813"/> + <details key="end" value="992"/> + <details key="line" value="14"/> </eAnnotations> <eAnnotations source="positions.38" references="/0/TypesAndEnumsForVisibility/%"> - <details key="start" value="843"/> - <details key="end" value="914"/> - <details key="line" value="14"/> + <details key="start" value="909"/> + <details key="end" value="980"/> + <details key="line" value="15"/> </eAnnotations> <eAnnotations source="positions.39" references="/0/TypesAndEnumsForVisibility/%/%"> - <details key="start" value="864"/> - <details key="end" value="906"/> + <details key="start" value="930"/> + <details key="end" value="972"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.40" references="/0/TypesAndEnumsForVisibility/%/%/self"> @@ -716,13 +774,13 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.41" references="/0/TypesAndEnumsForVisibility/%/%/visibilityFilter"> - <details key="start" value="889"/> - <details key="end" value="905"/> + <details key="start" value="955"/> + <details key="end" value="971"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.42" references="/0/TypesAndEnumsForVisibility/%/%.1"> - <details key="start" value="849"/> - <details key="end" value="861"/> + <details key="start" value="915"/> + <details key="end" value="927"/> <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.43" references="/0/TypesAndEnumsForVisibility/%/%.1/self"> @@ -731,129 +789,159 @@ <details key="line" value="0"/> </eAnnotations> <eAnnotations source="positions.44" references="/0/TypesAndEnumsForVisibility/ne"> - <details key="start" value="791"/> - <details key="end" value="805"/> - <details key="line" value="13"/> + <details key="start" value="857"/> + <details key="end" value="871"/> + <details key="line" value="14"/> </eAnnotations> <eAnnotations source="positions.45" references="/0/TypesAndEnumsForVisibility/visibilityFilter"> - <details key="start" value="807"/> - <details key="end" value="840"/> - <details key="line" value="13"/> + <details key="start" value="873"/> + <details key="end" value="906"/> + <details key="line" value="14"/> </eAnnotations> <eAnnotations source="positions.46" references="/0/CppClassTypeAndEnum"> - <details key="start" value="928"/> - <details key="end" value="1200"/> - <details key="line" value="17"/> + <details key="start" value="994"/> + <details key="end" value="1350"/> + <details key="line" value="18"/> </eAnnotations> <eAnnotations source="positions.47" references="/0/CppClassTypeAndEnum/%"> - <details key="start" value="986"/> - <details key="end" value="997"/> - <details key="line" value="18"/> + <details key="start" value="1052"/> + <details key="end" value="1056"/> + <details key="line" value="19"/> </eAnnotations> <eAnnotations source="positions.48" references="/0/CppClassTypeAndEnum/%.1"> - <details key="start" value="998"/> - <details key="end" value="1048"/> + <details key="start" value="1057"/> + <details key="end" value="1142"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.49" references="/0/CppClassTypeAndEnum/%.1/%"> + <details key="start" value="1057"/> + <details key="end" value="1079"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.49" references="/0/CppClassTypeAndEnum/%.1/self"> + <eAnnotations source="positions.50" references="/0/CppClassTypeAndEnum/%.1/%.1"> + <details key="start" value="1091"/> + <details key="end" value="1141"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.51" references="/0/CppClassTypeAndEnum/%.1/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.50" references="/0/CppClassTypeAndEnum/%.1/%"> - <details key="start" value="1025"/> - <details key="end" value="1047"/> + <eAnnotations source="positions.52" references="/0/CppClassTypeAndEnum/%.1/%.1/%"> + <details key="start" value="1118"/> + <details key="end" value="1140"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.51" references="/0/CppClassTypeAndEnum/%.2"> - <details key="start" value="1050"/> - <details key="end" value="1065"/> + <eAnnotations source="positions.53" references="/0/CppClassTypeAndEnum/%.2"> + <details key="start" value="1144"/> + <details key="end" value="1149"/> <details key="line" value="20"/> </eAnnotations> - <eAnnotations source="positions.52" references="/0/CppClassTypeAndEnum/%.3"> - <details key="start" value="1066"/> - <details key="end" value="1119"/> + <eAnnotations source="positions.54" references="/0/CppClassTypeAndEnum/%.3"> + <details key="start" value="1150"/> + <details key="end" value="1241"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.55" references="/0/CppClassTypeAndEnum/%.3/%"> + <details key="start" value="1150"/> + <details key="end" value="1175"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.56" references="/0/CppClassTypeAndEnum/%.3/%.1"> + <details key="start" value="1187"/> + <details key="end" value="1240"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.53" references="/0/CppClassTypeAndEnum/%.3/self"> + <eAnnotations source="positions.57" references="/0/CppClassTypeAndEnum/%.3/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.54" references="/0/CppClassTypeAndEnum/%.3/%"> - <details key="start" value="1093"/> - <details key="end" value="1118"/> + <eAnnotations source="positions.58" references="/0/CppClassTypeAndEnum/%.3/%.1/%"> + <details key="start" value="1214"/> + <details key="end" value="1239"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.55" references="/0/CppClassTypeAndEnum/%.4"> - <details key="start" value="1121"/> - <details key="end" value="1134"/> - <details key="line" value="22"/> + <eAnnotations source="positions.59" references="/0/CppClassTypeAndEnum/%.4"> + <details key="start" value="1243"/> + <details key="end" value="1248"/> + <details key="line" value="21"/> </eAnnotations> - <eAnnotations source="positions.56" references="/0/CppClassTypeAndEnum/%.5"> - <details key="start" value="1135"/> - <details key="end" value="1186"/> + <eAnnotations source="positions.60" references="/0/CppClassTypeAndEnum/%.5"> + <details key="start" value="1249"/> + <details key="end" value="1336"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.57" references="/0/CppClassTypeAndEnum/%.5/self"> + <eAnnotations source="positions.61" references="/0/CppClassTypeAndEnum/%.5/%"> + <details key="start" value="1249"/> + <details key="end" value="1272"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.62" references="/0/CppClassTypeAndEnum/%.5/%.1"> + <details key="start" value="1284"/> + <details key="end" value="1335"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.63" references="/0/CppClassTypeAndEnum/%.5/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.58" references="/0/CppClassTypeAndEnum/%.5/%"> - <details key="start" value="1162"/> - <details key="end" value="1185"/> + <eAnnotations source="positions.64" references="/0/CppClassTypeAndEnum/%.5/%.1/%"> + <details key="start" value="1311"/> + <details key="end" value="1334"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.59" references="/0/CppClassTypeAndEnum/class"> - <details key="start" value="965"/> - <details key="end" value="983"/> - <details key="line" value="17"/> + <eAnnotations source="positions.65" references="/0/CppClassTypeAndEnum/class"> + <details key="start" value="1031"/> + <details key="end" value="1049"/> + <details key="line" value="18"/> </eAnnotations> - <eAnnotations source="positions.60" references="/0/CppClassTypeAndEnumPackage"> - <details key="start" value="1203"/> - <details key="end" value="1384"/> - <details key="line" value="27"/> + <eAnnotations source="positions.66" references="/0/CppClassTypeAndEnumPackage"> + <details key="start" value="1352"/> + <details key="end" value="1533"/> + <details key="line" value="24"/> </eAnnotations> - <eAnnotations source="positions.61" references="/0/CppClassTypeAndEnumPackage/%"> - <details key="start" value="1264"/> - <details key="end" value="1316"/> + <eAnnotations source="positions.67" references="/0/CppClassTypeAndEnumPackage/%"> + <details key="start" value="1413"/> + <details key="end" value="1465"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.62" references="/0/CppClassTypeAndEnumPackage/%/self"> + <eAnnotations source="positions.68" references="/0/CppClassTypeAndEnumPackage/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.63" references="/0/CppClassTypeAndEnumPackage/%/%"> - <details key="start" value="1291"/> - <details key="end" value="1315"/> + <eAnnotations source="positions.69" references="/0/CppClassTypeAndEnumPackage/%/%"> + <details key="start" value="1440"/> + <details key="end" value="1464"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.64" references="/0/CppClassTypeAndEnumPackage/%.1"> - <details key="start" value="1318"/> - <details key="end" value="1319"/> - <details key="line" value="29"/> + <eAnnotations source="positions.70" references="/0/CppClassTypeAndEnumPackage/%.1"> + <details key="start" value="1467"/> + <details key="end" value="1468"/> + <details key="line" value="26"/> </eAnnotations> - <eAnnotations source="positions.65" references="/0/CppClassTypeAndEnumPackage/%.2"> - <details key="start" value="1320"/> - <details key="end" value="1370"/> + <eAnnotations source="positions.71" references="/0/CppClassTypeAndEnumPackage/%.2"> + <details key="start" value="1469"/> + <details key="end" value="1519"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.66" references="/0/CppClassTypeAndEnumPackage/%.2/self"> + <eAnnotations source="positions.72" references="/0/CppClassTypeAndEnumPackage/%.2/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.67" references="/0/CppClassTypeAndEnumPackage/%.2/%"> - <details key="start" value="1347"/> - <details key="end" value="1369"/> + <eAnnotations source="positions.73" references="/0/CppClassTypeAndEnumPackage/%.2/%"> + <details key="start" value="1496"/> + <details key="end" value="1518"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.68" references="/0/CppClassTypeAndEnumPackage/pkg"> - <details key="start" value="1247"/> - <details key="end" value="1260"/> - <details key="line" value="27"/> + <eAnnotations source="positions.74" references="/0/CppClassTypeAndEnumPackage/pkg"> + <details key="start" value="1396"/> + <details key="end" value="1409"/> + <details key="line" value="24"/> </eAnnotations> </ecore:EAnnotation> </xmi:XMI> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.mtl index 9ba92353d94..f46d6e95933 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.mtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/clazz/CppClassTypeAndEnum.mtl @@ -1,5 +1,6 @@ [module CppClassTypeAndEnum('http://www.eclipse.org/uml2/4.0.0/UML', 'http://www.eclipse.org/papyrus/C_Cpp/1')/] [import org::eclipse::papyrus::acceleo::GenUtils/] +[import org::eclipse::papyrus::cpp::codegen::utils::CppGenUtils/] [import org::eclipse::papyrus::cpp::codegen::acceleo::util::CppPrimitiveTypes/] [import org::eclipse::papyrus::cpp::codegen::acceleo::util::CppEnumerations/] @@ -15,15 +16,11 @@ [/template] [template public CppClassTypeAndEnum(class : Classifier)] - public: - [TypesAndEnumsForVisibility(VisibilityKind::public)/] - protected: - [TypesAndEnumsForVisibility(VisibilityKind::protected)/] - private: - [TypesAndEnumsForVisibility(VisibilityKind::private)/] + [VisibilityKind::public.getSection(TypesAndEnumsForVisibility(VisibilityKind::public))/] + [VisibilityKind::protected.getSection(TypesAndEnumsForVisibility(VisibilityKind::protected))/] + [VisibilityKind::private.getSection(TypesAndEnumsForVisibility(VisibilityKind::private))/] [/template] - [template public CppClassTypeAndEnumPackage(pkg : Package)] [TypesAndEnumsForVisibility(VisibilityKind::_package)/] [TypesAndEnumsForVisibility(VisibilityKind::public)/] diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.emtl index 34cafd6ed0e..42b8f6bebf5 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.emtl @@ -256,13 +256,91 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </parameter> </ownedModuleElement> + <ownedModuleElement xsi:type="mtl:Template" name="CppReturnSpec" visibility="Public"> + <body xsi:type="mtl:IfBlock"> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="void "/> + <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="mtl:QueryInvocation"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/returnResult"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/34"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </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/="/> + </ifExpr> + <else> + <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/utils/Modifier.emtl#/0/modConst"/> + <argument xsi:type="mtl:QueryInvocation"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/returnResult"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </argument> + </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="platform:/plugin/utils/CppGenUtils.emtl#/0/cppQualifiedName"/> + <argument xsi:type="ocl.ecore:PropertyCallExp"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/> + <source xsi:type="mtl:QueryInvocation"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/returnResult"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/36"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </source> + <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//TypedElement/type"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/> + </else> + </body> + <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/utils/Modifier.emtl#/0/modPtr"/> + <argument xsi:type="mtl:QueryInvocation"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/returnResult"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/37"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </argument> + </body> + <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/utils/Modifier.emtl#/0/modRef"/> + <argument xsi:type="mtl:QueryInvocation"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + <definition href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/returnResult"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/38"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </argument> + </body> + <parameter name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </parameter> + </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Template" name="InlineTxt" visibility="Public"> <body xsi:type="mtl:IfBlock"> <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="inline "/> <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"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/34"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/43"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/> </argument> <argument xsi:type="ocl.ecore:TypeExp" eType="/6/Inline"> @@ -279,7 +357,7 @@ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="static "/> <ifExpr xsi:type="ocl.ecore:PropertyCallExp"> <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="/39"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/48"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </source> <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature/isStatic"/> @@ -293,39 +371,38 @@ <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="../CppDocumentation.emtl#/0/CppOperationDoc"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/44"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/53"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/> <body xsi:type="mtl:TemplateInvocation" definition="/0/InlineTxt"> <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="/45"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/54"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="mtl:TemplateInvocation" definition="/0/virtualTxt"> <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="/55"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="mtl:TemplateInvocation" definition="/0/staticTxt"> <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="/47"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/56"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="mtl:TemplateInvocation" definition="/0/CppReturnSpec"> <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="/48"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/57"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> - <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/> <body xsi:type="mtl:QueryInvocation" definition="/0/destructor"> <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="/49"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/58"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> @@ -340,7 +417,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="CppParameter.emtl#/0/CppOperationParameters"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/51"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/60"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true"> @@ -351,13 +428,17 @@ <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/utils/Modifier.emtl#/0/modConst"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/52"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/61"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="mtl:TemplateInvocation" definition="/0/virtualSuffix"> <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="/53"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/62"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> @@ -366,6 +447,58 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </parameter> </ownedModuleElement> + <ownedModuleElement xsi:type="mtl:Template" name="CppBehaviorDeclaration" visibility="Public"> + <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="../CppDocumentation.emtl#/0/CppBehaviorDoc"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/67"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/> + <body xsi:type="mtl:TemplateInvocation" definition="/0/InlineTxt"> + <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="/68"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </body> + <body xsi:type="mtl:TemplateInvocation" definition="/0/CppReturnSpec.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="/69"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </body> + <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="behavior" referredVariable="/0/CppBehaviorDeclaration/behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </source> + <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="("/> + <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="CppParameter.emtl#/0/CppBehaviorParameters"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/71"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="true"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> + </argument> + </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="platform:/plugin/utils/Modifier.emtl#/0/modConst"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/72"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";"/> + <parameter name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </parameter> + </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Template" name="CppConstInit" visibility="Public"> <body xsi:type="mtl:IfBlock"> <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" : "/> @@ -376,7 +509,11 @@ <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"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/59"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/78"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:TypeExp" eType="/6/ConstInit"> @@ -395,7 +532,11 @@ <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"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/58"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/77"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:TypeExp" eType="/6/ConstInit"> @@ -405,7 +546,11 @@ <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"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/58"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/77"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:TypeExp" eType="/6/Create"> @@ -420,7 +565,7 @@ </parameter> </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Comment"> - <body startPosition="2074" endPosition="2144" value=" wrapper for native query (otherwise Acceleo does not indent properly)"/> + <body startPosition="2497" endPosition="2567" value=" wrapper for native query (otherwise Acceleo does not indent properly)"/> </ownedModuleElement> <ownedModuleElement xsi:type="mtl:Template" name="getBodyInTemplate" visibility="Public"> <body xsi:type="ocl.ecore:OperationCallExp"> @@ -428,7 +573,11 @@ <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/getBody"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/64"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/83"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:VariableExp" name="language" referredVariable="/0/getBodyInTemplate/language"> @@ -450,13 +599,13 @@ <body xsi:type="mtl:ForBlock"> <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="/73"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/92"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/> </source> <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> </body> <iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/25/Set(Type)"> - <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/70"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/89"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </source> <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioralFeature/raisedException"/> @@ -492,7 +641,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="../CppDocumentation.emtl#/0/CppOperationDoc"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/80"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/99"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> @@ -500,7 +649,7 @@ <body xsi:type="mtl:IfBlock"> <body xsi:type="mtl:TemplateInvocation" definition="/0/CppReturnSpec"> <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="/82"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/101"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> @@ -515,7 +664,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="CppParameter.emtl#/0/CppOperationParameters"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/84"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/103"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false"> @@ -526,7 +675,11 @@ <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/getBody"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/85"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/104"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="C/C++"> @@ -552,44 +705,51 @@ <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="../CppTemplates.emtl#/0/templateSignature.1"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/86"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/105"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="mtl:TemplateInvocation" definition="/0/InlineTxt"> <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="/87"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/106"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="mtl:TemplateInvocation" definition="/0/CppReturnSpec"> <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="/88"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/107"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> - <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:PropertyCallExp"> - <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/> + <body xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/25/Bag(String)"> + <source xsi:type="ocl.ecore:PropertyCallExp" eType="/25/Set(Classifier)"> <source xsi:type="ocl.ecore:VariableExp" name="operation" referredVariable="/0/CppOperationImplementation/operation"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </source> - <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation/class"/> + <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Feature/featuringClassifier"/> </source> - <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> + <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="temp1" referredVariable="/0/CppOperationImplementation/%.2/%.8/collect/temp4"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </source> + <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> + </body> + <iterator xsi:type="ocl.ecore:Variable" name="temp4"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </iterator> </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="../CppTemplates.emtl#/0/templateShortSignature.1"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/90"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/109"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="::"/> <body xsi:type="mtl:QueryInvocation" definition="/0/destructor"> <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="/91"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/110"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> @@ -604,7 +764,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="CppParameter.emtl#/0/CppOperationParameters"/> - <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/93"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/112"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false"> @@ -614,27 +774,31 @@ <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/> <body xsi:type="mtl:TemplateInvocation" definition="/0/throws"> <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="/94"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/113"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <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/utils/Modifier.emtl#/0/modConst"/> +<<<<<<< HEAD <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/95"> +======= + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/114"> +>>>>>>> - [Bug 420376] Generated C++ code is not formatted <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="mtl:TemplateInvocation" definition="/0/CppConstInit"> <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="/96"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/115"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> </body> <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" {
	"/> <body xsi:type="mtl:TemplateInvocation" definition="/0/getBodyInTemplate"> <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="/97"> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/116"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </argument> <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="C/C++"> @@ -648,6 +812,75 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </parameter> </ownedModuleElement> + <ownedModuleElement xsi:type="mtl:Template" name="CppBehaviorImplementation" visibility="Public"> + <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="../CppDocumentation.emtl#/0/CppBehaviorDoc"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/121"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="
"/> + <body xsi:type="mtl:TemplateInvocation" definition="/0/CppReturnSpec.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="/122"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + </body> + <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:PropertyCallExp"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioredClassifier"/> + <source xsi:type="ocl.ecore:VariableExp" name="behavior" referredVariable="/0/CppBehaviorImplementation/behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </source> + <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior/context"/> + </source> + <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> + </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="behavior" referredVariable="/0/CppBehaviorImplementation/behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </source> + <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/> + </body> + <body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="("/> + <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="CppParameter.emtl#/0/CppBehaviorParameters"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/125"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + <argument xsi:type="ocl.ecore:BooleanLiteralExp" booleanSymbol="false"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> + </argument> + </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="platform:/plugin/utils/Modifier.emtl#/0/modConst"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/126"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + </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="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getBodyFromOB"/> + <argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/127"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </argument> + <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="C/C++"> + <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="
}"/> + <parameter name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </parameter> + </ownedModuleElement> </mtl:Module> <ecore:EPackage name="additions"> <eClassifiers xsi:type="ecore:EClass" name="String_Class"> @@ -719,6 +952,16 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eParameters> </eOperations> + <eOperations name="CppReturnSpec"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL" references="/0/CppReturnSpec.1"/> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + </eOperations> <eOperations name="InlineTxt"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -749,6 +992,16 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorDeclaration"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL" references="/0/CppBehaviorDeclaration"/> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + </eOperations> <eOperations name="CppConstInit"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -792,6 +1045,16 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorImplementation"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL" references="/0/CppBehaviorImplementation"/> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eParameters> + </eOperations> <eOperations name="hasStereotype"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -837,6 +1100,33 @@ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> </eParameters> </eOperations> + <eOperations name="getBodyFromOB"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL"> + <references href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/getBodyFromOB"/> + </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/4.0.0/UML#//OpaqueBehavior"/> + </eParameters> + <eParameters name="arg1"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </eParameters> + </eOperations> + <eOperations name="returnResult"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL"> + <references href="platform:/plugin/org.eclipse.papyrus.acceleo/org/eclipse/papyrus/acceleo/GenUtils.emtl#/0/returnResult"/> + </eAnnotations> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + </eOperations> <eOperations name="cppQualifiedName"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -897,6 +1187,18 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorDoc"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL"> + <references href="../CppDocumentation.emtl#/0/CppBehaviorDoc"/> + </eAnnotations> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + </eOperations> <eOperations name="CppOperationParameters"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -912,6 +1214,21 @@ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorParameters"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL"> + <references href="CppParameter.emtl#/0/CppBehaviorParameters"/> + </eAnnotations> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + <eParameters name="showDefault"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> + </eParameters> + </eOperations> <eOperations name="templateSignature"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -962,11 +1279,21 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Element_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </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/4.0.0/UML#//Class"/> @@ -997,6 +1324,11 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Parameter_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> @@ -1101,6 +1433,9 @@ <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Type)" instanceClassName="java.util.Set"> <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Type"/> </eClassifiers> + <eClassifiers xsi:type="ocl.ecore:SetType" name="Set(Classifier)" instanceClassName="java.util.Set"> + <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> @@ -1118,6 +1453,33 @@ <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/4.0.0/UML#//Behavior"/> + </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/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </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/4.0.0/UML#//Element"/> </ocl.ecore:Variable> <ocl.ecore:Variable name="self"> @@ -1190,6 +1552,36 @@ <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/4.0.0/UML#//Behavior"/> + </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/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </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/4.0.0/UML#//Operation"/> </ocl.ecore:Variable> <ocl.ecore:Variable name="self"> @@ -1321,6 +1713,39 @@ <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/4.0.0/UML#//OpaqueBehavior"/> + </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/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </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/virtualTxt"> <details key="start" value="581"/> @@ -1717,695 +2142,1045 @@ <details key="end" value="1230"/> <details key="line" value="35"/> </eAnnotations> - <eAnnotations source="positions.79" references="/0/InlineTxt"> + <eAnnotations source="positions.79" references="/0/CppReturnSpec.1"> <details key="start" value="1410"/> - <details key="end" value="1509"/> + <details key="end" value="1642"/> <details key="line" value="40"/> </eAnnotations> - <eAnnotations source="positions.80" references="/0/InlineTxt/%"> - <details key="start" value="1457"/> - <details key="end" value="1497"/> + <eAnnotations source="positions.80" references="/0/CppReturnSpec.1/%"> + <details key="start" value="1463"/> + <details key="end" value="1578"/> + <details key="line" value="41"/> + </eAnnotations> + <eAnnotations source="positions.81" references="/0/CppReturnSpec.1/%/%"> + <details key="start" value="1491"/> + <details key="end" value="1496"/> <details key="line" value="41"/> </eAnnotations> - <eAnnotations source="positions.81" references="/0/InlineTxt/%/%"> + <eAnnotations source="positions.82" references="/0/CppReturnSpec.1/%/%.1"> + <details key="start" value="1467"/> + <details key="end" value="1490"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.83" references="/0/CppReturnSpec.1/%/%.1/%"> + <details key="start" value="1468"/> + <details key="end" value="1482"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.84" references="/0/CppReturnSpec.1/%/%.1/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.85" references="/0/CppReturnSpec.1/%/%.1/%.1"> <details key="start" value="1485"/> - <details key="end" value="1492"/> + <details key="end" value="1489"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.86" references="/0/CppReturnSpec.1/%/%.2"> + <details key="start" value="1496"/> + <details key="end" value="1573"/> <details key="line" value="41"/> </eAnnotations> - <eAnnotations source="positions.82" references="/0/InlineTxt/%/%.1"> - <details key="start" value="1461"/> - <details key="end" value="1484"/> + <eAnnotations source="positions.87" references="/0/CppReturnSpec.1/%/%.2/%"> + <details key="start" value="1503"/> + <details key="end" value="1528"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.83" references="/0/InlineTxt/%/%.1/self"> + <eAnnotations source="positions.88" references="/0/CppReturnSpec.1/%/%.2/%/%"> + <details key="start" value="1503"/> + <details key="end" value="1517"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.89" references="/0/CppReturnSpec.1/%/%.2/%/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.84" references="/0/InlineTxt/%/%.1/%"> - <details key="start" value="1476"/> - <details key="end" value="1482"/> + <eAnnotations source="positions.90" references="/0/CppReturnSpec.1/%/%.2/%.1"> + <details key="start" value="1530"/> + <details key="end" value="1531"/> + <details key="line" value="41"/> + </eAnnotations> + <eAnnotations source="positions.91" references="/0/CppReturnSpec.1/%/%.2/%.2"> + <details key="start" value="1532"/> + <details key="end" value="1570"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.85" references="/0/InlineTxt/element"> - <details key="start" value="1437"/> - <details key="end" value="1454"/> - <details key="line" value="40"/> + <eAnnotations source="positions.92" references="/0/CppReturnSpec.1/%/%.2/%.2/%"> + <details key="start" value="1532"/> + <details key="end" value="1551"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.93" references="/0/CppReturnSpec.1/%/%.2/%.2/%/%"> + <details key="start" value="1532"/> + <details key="end" value="1546"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.86" references="/0/staticTxt"> - <details key="start" value="1512"/> + <eAnnotations source="positions.94" references="/0/CppReturnSpec.1/%/%.2/%.2/%/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.95" references="/0/CppReturnSpec.1/%/%.2/%.3"> + <details key="start" value="1572"/> + <details key="end" value="1573"/> + <details key="line" value="41"/> + </eAnnotations> + <eAnnotations source="positions.96" references="/0/CppReturnSpec.1/%.1"> + <details key="start" value="1579"/> <details key="end" value="1602"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.97" references="/0/CppReturnSpec.1/%.1/%"> + <details key="start" value="1579"/> + <details key="end" value="1593"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.98" references="/0/CppReturnSpec.1/%.1/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.99" references="/0/CppReturnSpec.1/%.2"> + <details key="start" value="1605"/> + <details key="end" value="1628"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.100" references="/0/CppReturnSpec.1/%.2/%"> + <details key="start" value="1605"/> + <details key="end" value="1619"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.101" references="/0/CppReturnSpec.1/%.2/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.102" references="/0/CppReturnSpec.1/behavior"> + <details key="start" value="1441"/> + <details key="end" value="1460"/> + <details key="line" value="40"/> + </eAnnotations> + <eAnnotations source="positions.103" references="/0/InlineTxt"> + <details key="start" value="1645"/> + <details key="end" value="1744"/> <details key="line" value="45"/> </eAnnotations> - <eAnnotations source="positions.87" references="/0/staticTxt/%"> - <details key="start" value="1563"/> - <details key="end" value="1590"/> + <eAnnotations source="positions.104" references="/0/InlineTxt/%"> + <details key="start" value="1692"/> + <details key="end" value="1732"/> <details key="line" value="46"/> </eAnnotations> - <eAnnotations source="positions.88" references="/0/staticTxt/%/%"> - <details key="start" value="1578"/> - <details key="end" value="1585"/> + <eAnnotations source="positions.105" references="/0/InlineTxt/%/%"> + <details key="start" value="1720"/> + <details key="end" value="1727"/> <details key="line" value="46"/> </eAnnotations> - <eAnnotations source="positions.89" references="/0/staticTxt/%/%.1"> - <details key="start" value="1567"/> - <details key="end" value="1577"/> + <eAnnotations source="positions.106" references="/0/InlineTxt/%/%.1"> + <details key="start" value="1696"/> + <details key="end" value="1719"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.90" references="/0/staticTxt/%/%.1/self"> + <eAnnotations source="positions.107" references="/0/InlineTxt/%/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.91" references="/0/staticTxt/operation"> - <details key="start" value="1539"/> - <details key="end" value="1560"/> + <eAnnotations source="positions.108" references="/0/InlineTxt/%/%.1/%"> + <details key="start" value="1711"/> + <details key="end" value="1717"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.109" references="/0/InlineTxt/element"> + <details key="start" value="1672"/> + <details key="end" value="1689"/> <details key="line" value="45"/> </eAnnotations> - <eAnnotations source="positions.92" references="/0/CppOperationDeclaration"> - <details key="start" value="1604"/> - <details key="end" value="1861"/> - <details key="line" value="49"/> + <eAnnotations source="positions.110" references="/0/staticTxt"> + <details key="start" value="1747"/> + <details key="end" value="1837"/> + <details key="line" value="50"/> + </eAnnotations> + <eAnnotations source="positions.111" references="/0/staticTxt/%"> + <details key="start" value="1798"/> + <details key="end" value="1825"/> + <details key="line" value="51"/> + </eAnnotations> + <eAnnotations source="positions.112" references="/0/staticTxt/%/%"> + <details key="start" value="1813"/> + <details key="end" value="1820"/> + <details key="line" value="51"/> </eAnnotations> - <eAnnotations source="positions.93" references="/0/CppOperationDeclaration/%"> - <details key="start" value="1670"/> - <details key="end" value="1687"/> + <eAnnotations source="positions.113" references="/0/staticTxt/%/%.1"> + <details key="start" value="1802"/> + <details key="end" value="1812"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.94" references="/0/CppOperationDeclaration/%/self"> + <eAnnotations source="positions.114" references="/0/staticTxt/%/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.95" references="/0/CppOperationDeclaration/%.1"> - <details key="start" value="1689"/> - <details key="end" value="1690"/> - <details key="line" value="51"/> + <eAnnotations source="positions.115" references="/0/staticTxt/operation"> + <details key="start" value="1774"/> + <details key="end" value="1795"/> + <details key="line" value="50"/> + </eAnnotations> + <eAnnotations source="positions.116" references="/0/CppOperationDeclaration"> + <details key="start" value="1839"/> + <details key="end" value="2095"/> + <details key="line" value="54"/> </eAnnotations> - <eAnnotations source="positions.96" references="/0/CppOperationDeclaration/%.2"> - <details key="start" value="1691"/> - <details key="end" value="1702"/> + <eAnnotations source="positions.117" references="/0/CppOperationDeclaration/%"> + <details key="start" value="1905"/> + <details key="end" value="1922"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.97" references="/0/CppOperationDeclaration/%.2/self"> + <eAnnotations source="positions.118" references="/0/CppOperationDeclaration/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.98" references="/0/CppOperationDeclaration/%.3"> - <details key="start" value="1705"/> - <details key="end" value="1717"/> + <eAnnotations source="positions.119" references="/0/CppOperationDeclaration/%.1"> + <details key="start" value="1924"/> + <details key="end" value="1925"/> + <details key="line" value="56"/> + </eAnnotations> + <eAnnotations source="positions.120" references="/0/CppOperationDeclaration/%.2"> + <details key="start" value="1926"/> + <details key="end" value="1937"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.99" references="/0/CppOperationDeclaration/%.3/self"> + <eAnnotations source="positions.121" references="/0/CppOperationDeclaration/%.2/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.100" references="/0/CppOperationDeclaration/%.4"> - <details key="start" value="1720"/> - <details key="end" value="1731"/> + <eAnnotations source="positions.122" references="/0/CppOperationDeclaration/%.3"> + <details key="start" value="1940"/> + <details key="end" value="1952"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.101" references="/0/CppOperationDeclaration/%.4/self"> + <eAnnotations source="positions.123" references="/0/CppOperationDeclaration/%.3/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.102" references="/0/CppOperationDeclaration/%.5"> - <details key="start" value="1734"/> - <details key="end" value="1749"/> + <eAnnotations source="positions.124" references="/0/CppOperationDeclaration/%.4"> + <details key="start" value="1955"/> + <details key="end" value="1966"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.103" references="/0/CppOperationDeclaration/%.5/self"> + <eAnnotations source="positions.125" references="/0/CppOperationDeclaration/%.4/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.104" references="/0/CppOperationDeclaration/%.6"> - <details key="start" value="1751"/> - <details key="end" value="1752"/> - <details key="line" value="51"/> + <eAnnotations source="positions.126" references="/0/CppOperationDeclaration/%.5"> + <details key="start" value="1969"/> + <details key="end" value="1984"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.127" references="/0/CppOperationDeclaration/%.5/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.105" references="/0/CppOperationDeclaration/%.7"> - <details key="start" value="1753"/> - <details key="end" value="1765"/> + <eAnnotations source="positions.128" references="/0/CppOperationDeclaration/%.6"> + <details key="start" value="1987"/> + <details key="end" value="1999"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.106" references="/0/CppOperationDeclaration/%.7/self"> + <eAnnotations source="positions.129" references="/0/CppOperationDeclaration/%.6/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.107" references="/0/CppOperationDeclaration/%.8"> - <details key="start" value="1768"/> - <details key="end" value="1782"/> + <eAnnotations source="positions.130" references="/0/CppOperationDeclaration/%.7"> + <details key="start" value="2002"/> + <details key="end" value="2016"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.108" references="/0/CppOperationDeclaration/%.8/operation"> - <details key="start" value="1768"/> - <details key="end" value="1777"/> + <eAnnotations source="positions.131" references="/0/CppOperationDeclaration/%.7/operation"> + <details key="start" value="2002"/> + <details key="end" value="2011"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.109" references="/0/CppOperationDeclaration/%.9"> - <details key="start" value="1784"/> - <details key="end" value="1785"/> - <details key="line" value="51"/> + <eAnnotations source="positions.132" references="/0/CppOperationDeclaration/%.8"> + <details key="start" value="2018"/> + <details key="end" value="2019"/> + <details key="line" value="56"/> </eAnnotations> - <eAnnotations source="positions.110" references="/0/CppOperationDeclaration/%.10"> - <details key="start" value="1786"/> - <details key="end" value="1814"/> + <eAnnotations source="positions.133" references="/0/CppOperationDeclaration/%.9"> + <details key="start" value="2020"/> + <details key="end" value="2048"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.111" references="/0/CppOperationDeclaration/%.10/self"> + <eAnnotations source="positions.134" references="/0/CppOperationDeclaration/%.9/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.112" references="/0/CppOperationDeclaration/%.10/%"> - <details key="start" value="1809"/> - <details key="end" value="1813"/> + <eAnnotations source="positions.135" references="/0/CppOperationDeclaration/%.9/%"> + <details key="start" value="2043"/> + <details key="end" value="2047"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.113" references="/0/CppOperationDeclaration/%.11"> - <details key="start" value="1816"/> - <details key="end" value="1817"/> - <details key="line" value="51"/> + <eAnnotations source="positions.136" references="/0/CppOperationDeclaration/%.10"> + <details key="start" value="2050"/> + <details key="end" value="2051"/> + <details key="line" value="56"/> </eAnnotations> - <eAnnotations source="positions.114" references="/0/CppOperationDeclaration/%.12"> - <details key="start" value="1818"/> - <details key="end" value="1828"/> + <eAnnotations source="positions.137" references="/0/CppOperationDeclaration/%.11"> + <details key="start" value="2052"/> + <details key="end" value="2062"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.115" references="/0/CppOperationDeclaration/%.12/self"> + <eAnnotations source="positions.138" references="/0/CppOperationDeclaration/%.11/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.116" references="/0/CppOperationDeclaration/%.13"> - <details key="start" value="1831"/> - <details key="end" value="1846"/> + <eAnnotations source="positions.139" references="/0/CppOperationDeclaration/%.12"> + <details key="start" value="2065"/> + <details key="end" value="2080"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.117" references="/0/CppOperationDeclaration/%.13/self"> + <eAnnotations source="positions.140" references="/0/CppOperationDeclaration/%.12/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.118" references="/0/CppOperationDeclaration/%.14"> - <details key="start" value="1848"/> - <details key="end" value="1849"/> - <details key="line" value="51"/> + <eAnnotations source="positions.141" references="/0/CppOperationDeclaration/%.13"> + <details key="start" value="2082"/> + <details key="end" value="2083"/> + <details key="line" value="56"/> </eAnnotations> - <eAnnotations source="positions.119" references="/0/CppOperationDeclaration/operation"> - <details key="start" value="1645"/> - <details key="end" value="1666"/> - <details key="line" value="49"/> + <eAnnotations source="positions.142" references="/0/CppOperationDeclaration/operation"> + <details key="start" value="1880"/> + <details key="end" value="1901"/> + <details key="line" value="54"/> </eAnnotations> - <eAnnotations source="positions.120" references="/0/CppConstInit"> - <details key="start" value="1864"/> - <details key="end" value="2063"/> - <details key="line" value="55"/> + <eAnnotations source="positions.143" references="/0/CppBehaviorDeclaration"> + <details key="start" value="2097"/> + <details key="end" value="2285"/> + <details key="line" value="59"/> </eAnnotations> - <eAnnotations source="positions.121" references="/0/CppConstInit/%"> - <details key="start" value="1918"/> - <details key="end" value="2051"/> - <details key="line" value="56"/> + <eAnnotations source="positions.144" references="/0/CppBehaviorDeclaration/%"> + <details key="start" value="2160"/> + <details key="end" value="2176"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.122" references="/0/CppConstInit/%/%"> - <details key="start" value="1979"/> - <details key="end" value="1982"/> - <details key="line" value="56"/> + <eAnnotations source="positions.145" references="/0/CppBehaviorDeclaration/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.146" references="/0/CppBehaviorDeclaration/%.1"> + <details key="start" value="2178"/> + <details key="end" value="2179"/> + <details key="line" value="61"/> + </eAnnotations> + <eAnnotations source="positions.147" references="/0/CppBehaviorDeclaration/%.2"> + <details key="start" value="2180"/> + <details key="end" value="2191"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.148" references="/0/CppBehaviorDeclaration/%.2/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.149" references="/0/CppBehaviorDeclaration/%.3"> + <details key="start" value="2194"/> + <details key="end" value="2209"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.150" references="/0/CppBehaviorDeclaration/%.3/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.123" references="/0/CppConstInit/%/%.1"> - <details key="start" value="1983"/> - <details key="end" value="2044"/> + <eAnnotations source="positions.151" references="/0/CppBehaviorDeclaration/%.4"> + <details key="start" value="2212"/> + <details key="end" value="2225"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.124" references="/0/CppConstInit/%/%.1/%"> - <details key="start" value="1983"/> - <details key="end" value="2029"/> + <eAnnotations source="positions.152" references="/0/CppBehaviorDeclaration/%.4/behavior"> + <details key="start" value="2212"/> + <details key="end" value="2220"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.125" references="/0/CppConstInit/%/%.1/%/%"> - <details key="start" value="1983"/> - <details key="end" value="2008"/> + <eAnnotations source="positions.153" references="/0/CppBehaviorDeclaration/%.5"> + <details key="start" value="2227"/> + <details key="end" value="2228"/> + <details key="line" value="61"/> + </eAnnotations> + <eAnnotations source="positions.154" references="/0/CppBehaviorDeclaration/%.6"> + <details key="start" value="2229"/> + <details key="end" value="2256"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.126" references="/0/CppConstInit/%/%.1/%/%/self"> + <eAnnotations source="positions.155" references="/0/CppBehaviorDeclaration/%.6/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.127" references="/0/CppConstInit/%/%.1/%/%/%"> - <details key="start" value="1998"/> - <details key="end" value="2007"/> + <eAnnotations source="positions.156" references="/0/CppBehaviorDeclaration/%.6/%"> + <details key="start" value="2251"/> + <details key="end" value="2255"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.157" references="/0/CppBehaviorDeclaration/%.7"> + <details key="start" value="2258"/> + <details key="end" value="2259"/> + <details key="line" value="61"/> + </eAnnotations> + <eAnnotations source="positions.158" references="/0/CppBehaviorDeclaration/%.8"> + <details key="start" value="2260"/> + <details key="end" value="2270"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.159" references="/0/CppBehaviorDeclaration/%.8/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.128" references="/0/CppConstInit/%/%.1/%/%.1"> - <details key="start" value="2019"/> - <details key="end" value="2028"/> + <eAnnotations source="positions.160" references="/0/CppBehaviorDeclaration/%.9"> + <details key="start" value="2272"/> + <details key="end" value="2273"/> + <details key="line" value="61"/> + </eAnnotations> + <eAnnotations source="positions.161" references="/0/CppBehaviorDeclaration/behavior"> + <details key="start" value="2137"/> + <details key="end" value="2156"/> + <details key="line" value="59"/> + </eAnnotations> + <eAnnotations source="positions.162" references="/0/CppConstInit"> + <details key="start" value="2287"/> + <details key="end" value="2486"/> + <details key="line" value="64"/> + </eAnnotations> + <eAnnotations source="positions.163" references="/0/CppConstInit/%"> + <details key="start" value="2341"/> + <details key="end" value="2474"/> + <details key="line" value="65"/> + </eAnnotations> + <eAnnotations source="positions.164" references="/0/CppConstInit/%/%"> + <details key="start" value="2402"/> + <details key="end" value="2405"/> + <details key="line" value="65"/> + </eAnnotations> + <eAnnotations source="positions.165" references="/0/CppConstInit/%/%.1"> + <details key="start" value="2406"/> + <details key="end" value="2467"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.129" references="/0/CppConstInit/%/%.2"> - <details key="start" value="1922"/> - <details key="end" value="1978"/> + <eAnnotations source="positions.166" references="/0/CppConstInit/%/%.1/%"> + <details key="start" value="2406"/> + <details key="end" value="2452"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.130" references="/0/CppConstInit/%/%.2/%"> - <details key="start" value="1923"/> - <details key="end" value="1947"/> + <eAnnotations source="positions.167" references="/0/CppConstInit/%/%.1/%/%"> + <details key="start" value="2406"/> + <details key="end" value="2431"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.131" references="/0/CppConstInit/%/%.2/%/self"> + <eAnnotations source="positions.168" references="/0/CppConstInit/%/%.1/%/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.132" references="/0/CppConstInit/%/%.2/%/%"> - <details key="start" value="1937"/> - <details key="end" value="1946"/> + <eAnnotations source="positions.169" references="/0/CppConstInit/%/%.1/%/%/%"> + <details key="start" value="2421"/> + <details key="end" value="2430"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.170" references="/0/CppConstInit/%/%.1/%/%.1"> + <details key="start" value="2442"/> + <details key="end" value="2451"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.133" references="/0/CppConstInit/%/%.2/%.1"> - <details key="start" value="1952"/> - <details key="end" value="1977"/> + <eAnnotations source="positions.171" references="/0/CppConstInit/%/%.2"> + <details key="start" value="2345"/> + <details key="end" value="2401"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.134" references="/0/CppConstInit/%/%.2/%.1/self"> + <eAnnotations source="positions.172" references="/0/CppConstInit/%/%.2/%"> + <details key="start" value="2346"/> + <details key="end" value="2370"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.173" references="/0/CppConstInit/%/%.2/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.135" references="/0/CppConstInit/%/%.2/%.1/%"> - <details key="start" value="1966"/> - <details key="end" value="1976"/> + <eAnnotations source="positions.174" references="/0/CppConstInit/%/%.2/%/%"> + <details key="start" value="2360"/> + <details key="end" value="2369"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.136" references="/0/CppConstInit/operation"> - <details key="start" value="1894"/> - <details key="end" value="1915"/> - <details key="line" value="55"/> + <eAnnotations source="positions.175" references="/0/CppConstInit/%/%.2/%.1"> + <details key="start" value="2375"/> + <details key="end" value="2400"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.137" references="/0/%"> - <details key="start" value="2066"/> - <details key="end" value="2146"/> + <eAnnotations source="positions.176" references="/0/CppConstInit/%/%.2/%.1/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.138" references="/0/getBodyInTemplate"> - <details key="start" value="2147"/> - <details key="end" value="2264"/> - <details key="line" value="61"/> + <eAnnotations source="positions.177" references="/0/CppConstInit/%/%.2/%.1/%"> + <details key="start" value="2389"/> + <details key="end" value="2399"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.139" references="/0/getBodyInTemplate/%"> - <details key="start" value="2226"/> - <details key="end" value="2250"/> + <eAnnotations source="positions.178" references="/0/CppConstInit/operation"> + <details key="start" value="2317"/> + <details key="end" value="2338"/> + <details key="line" value="64"/> + </eAnnotations> + <eAnnotations source="positions.179" references="/0/%"> + <details key="start" value="2489"/> + <details key="end" value="2569"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.180" references="/0/getBodyInTemplate"> + <details key="start" value="2570"/> + <details key="end" value="2687"/> + <details key="line" value="70"/> + </eAnnotations> + <eAnnotations source="positions.181" references="/0/getBodyInTemplate/%"> + <details key="start" value="2649"/> + <details key="end" value="2673"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.140" references="/0/getBodyInTemplate/%/%"> - <details key="start" value="2226"/> - <details key="end" value="2243"/> + <eAnnotations source="positions.182" references="/0/getBodyInTemplate/%/%"> + <details key="start" value="2649"/> + <details key="end" value="2666"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.141" references="/0/getBodyInTemplate/%/%/self"> + <eAnnotations source="positions.183" references="/0/getBodyInTemplate/%/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.142" references="/0/getBodyInTemplate/%/%/language"> - <details key="start" value="2234"/> - <details key="end" value="2242"/> + <eAnnotations source="positions.184" references="/0/getBodyInTemplate/%/%/language"> + <details key="start" value="2657"/> + <details key="end" value="2665"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.143" references="/0/getBodyInTemplate/operation"> - <details key="start" value="2182"/> - <details key="end" value="2203"/> - <details key="line" value="61"/> + <eAnnotations source="positions.185" references="/0/getBodyInTemplate/operation"> + <details key="start" value="2605"/> + <details key="end" value="2626"/> + <details key="line" value="70"/> </eAnnotations> - <eAnnotations source="positions.144" references="/0/getBodyInTemplate/language"> - <details key="start" value="2205"/> - <details key="end" value="2222"/> - <details key="line" value="61"/> + <eAnnotations source="positions.186" references="/0/getBodyInTemplate/language"> + <details key="start" value="2628"/> + <details key="end" value="2645"/> + <details key="line" value="70"/> </eAnnotations> - <eAnnotations source="positions.145" references="/0/throws"> - <details key="start" value="2267"/> - <details key="end" value="2435"/> - <details key="line" value="66"/> + <eAnnotations source="positions.187" references="/0/throws"> + <details key="start" value="2690"/> + <details key="end" value="2858"/> + <details key="line" value="75"/> </eAnnotations> - <eAnnotations source="positions.146" references="/0/throws/%"> - <details key="start" value="2314"/> - <details key="end" value="2423"/> - <details key="line" value="67"/> + <eAnnotations source="positions.188" references="/0/throws/%"> + <details key="start" value="2737"/> + <details key="end" value="2846"/> + <details key="line" value="76"/> </eAnnotations> - <eAnnotations source="positions.147" references="/0/throws/%/%"> - <details key="start" value="2359"/> - <details key="end" value="2366"/> - <details key="line" value="68"/> + <eAnnotations source="positions.189" references="/0/throws/%/%"> + <details key="start" value="2782"/> + <details key="end" value="2789"/> + <details key="line" value="77"/> </eAnnotations> - <eAnnotations source="positions.148" references="/0/throws/%/%.1"> - <details key="start" value="2366"/> - <details key="end" value="2417"/> - <details key="line" value="68"/> + <eAnnotations source="positions.190" references="/0/throws/%/%.1"> + <details key="start" value="2789"/> + <details key="end" value="2840"/> + <details key="line" value="77"/> </eAnnotations> - <eAnnotations source="positions.149" references="/0/throws/%/%.1/%"> - <details key="start" value="2405"/> - <details key="end" value="2409"/> + <eAnnotations source="positions.191" references="/0/throws/%/%.1/%"> + <details key="start" value="2828"/> + <details key="end" value="2832"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.150" references="/0/throws/%/%.1/%/self"> + <eAnnotations source="positions.192" references="/0/throws/%/%.1/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.151" references="/0/throws/%/%.1/%.1"> - <details key="start" value="2372"/> - <details key="end" value="2387"/> + <eAnnotations source="positions.193" references="/0/throws/%/%.1/%.1"> + <details key="start" value="2795"/> + <details key="end" value="2810"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.152" references="/0/throws/%/%.1/%.1/self"> + <eAnnotations source="positions.194" references="/0/throws/%/%.1/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.153" references="/0/throws/%/%.1/%.2"> - <details key="start" value="2399"/> - <details key="end" value="2402"/> + <eAnnotations source="positions.195" references="/0/throws/%/%.1/%.2"> + <details key="start" value="2822"/> + <details key="end" value="2825"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.154" references="/0/throws/%/%.2"> - <details key="start" value="2417"/> - <details key="end" value="2418"/> - <details key="line" value="69"/> + <eAnnotations source="positions.196" references="/0/throws/%/%.2"> + <details key="start" value="2840"/> + <details key="end" value="2841"/> + <details key="line" value="78"/> </eAnnotations> - <eAnnotations source="positions.155" references="/0/throws/%/%.3"> - <details key="start" value="2318"/> - <details key="end" value="2357"/> + <eAnnotations source="positions.197" references="/0/throws/%/%.3"> + <details key="start" value="2741"/> + <details key="end" value="2780"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.156" references="/0/throws/%/%.3/%"> - <details key="start" value="2319"/> - <details key="end" value="2352"/> + <eAnnotations source="positions.198" references="/0/throws/%/%.3/%"> + <details key="start" value="2742"/> + <details key="end" value="2775"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.157" references="/0/throws/%/%.3/%/%"> - <details key="start" value="2319"/> - <details key="end" value="2344"/> + <eAnnotations source="positions.199" references="/0/throws/%/%.3/%/%"> + <details key="start" value="2742"/> + <details key="end" value="2767"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.158" references="/0/throws/%/%.3/%/%/operation"> - <details key="start" value="2319"/> - <details key="end" value="2328"/> + <eAnnotations source="positions.200" references="/0/throws/%/%.3/%/%/operation"> + <details key="start" value="2742"/> + <details key="end" value="2751"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.159" references="/0/throws/%/%.3/%.1"> - <details key="start" value="2355"/> - <details key="end" value="2356"/> + <eAnnotations source="positions.201" references="/0/throws/%/%.3/%.1"> + <details key="start" value="2778"/> + <details key="end" value="2779"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.160" references="/0/throws/operation"> - <details key="start" value="2291"/> - <details key="end" value="2311"/> - <details key="line" value="66"/> + <eAnnotations source="positions.202" references="/0/throws/operation"> + <details key="start" value="2714"/> + <details key="end" value="2734"/> + <details key="line" value="75"/> </eAnnotations> - <eAnnotations source="positions.161" references="/0/CppOperationImplementation"> - <details key="start" value="2438"/> - <details key="end" value="2926"/> - <details key="line" value="73"/> + <eAnnotations source="positions.203" references="/0/CppOperationImplementation"> + <details key="start" value="2861"/> + <details key="end" value="3363"/> + <details key="line" value="82"/> </eAnnotations> - <eAnnotations source="positions.162" references="/0/CppOperationImplementation/%"> - <details key="start" value="2507"/> - <details key="end" value="2524"/> + <eAnnotations source="positions.204" references="/0/CppOperationImplementation/%"> + <details key="start" value="2930"/> + <details key="end" value="2947"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.163" references="/0/CppOperationImplementation/%/self"> + <eAnnotations source="positions.205" references="/0/CppOperationImplementation/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.164" references="/0/CppOperationImplementation/%.1"> - <details key="start" value="2526"/> - <details key="end" value="2527"/> - <details key="line" value="75"/> + <eAnnotations source="positions.206" references="/0/CppOperationImplementation/%.1"> + <details key="start" value="2949"/> + <details key="end" value="2950"/> + <details key="line" value="84"/> </eAnnotations> - <eAnnotations source="positions.165" references="/0/CppOperationImplementation/%.2"> - <details key="start" value="2527"/> - <details key="end" value="2914"/> - <details key="line" value="75"/> + <eAnnotations source="positions.207" references="/0/CppOperationImplementation/%.2"> + <details key="start" value="2950"/> + <details key="end" value="3351"/> + <details key="line" value="84"/> </eAnnotations> - <eAnnotations source="positions.166" references="/0/CppOperationImplementation/%.2/%"> - <details key="start" value="2559"/> - <details key="end" value="2574"/> + <eAnnotations source="positions.208" references="/0/CppOperationImplementation/%.2/%"> + <details key="start" value="2982"/> + <details key="end" value="2997"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.167" references="/0/CppOperationImplementation/%.2/%/self"> + <eAnnotations source="positions.209" references="/0/CppOperationImplementation/%.2/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.168" references="/0/CppOperationImplementation/%.2/%.1"> - <details key="start" value="2577"/> - <details key="end" value="2591"/> + <eAnnotations source="positions.210" references="/0/CppOperationImplementation/%.2/%.1"> + <details key="start" value="3000"/> + <details key="end" value="3014"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.169" references="/0/CppOperationImplementation/%.2/%.1/operation"> - <details key="start" value="2577"/> - <details key="end" value="2586"/> + <eAnnotations source="positions.211" references="/0/CppOperationImplementation/%.2/%.1/operation"> + <details key="start" value="3000"/> + <details key="end" value="3009"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.170" references="/0/CppOperationImplementation/%.2/%.2"> - <details key="start" value="2593"/> - <details key="end" value="2594"/> - <details key="line" value="76"/> + <eAnnotations source="positions.212" references="/0/CppOperationImplementation/%.2/%.2"> + <details key="start" value="3016"/> + <details key="end" value="3017"/> + <details key="line" value="85"/> </eAnnotations> - <eAnnotations source="positions.171" references="/0/CppOperationImplementation/%.2/%.3"> - <details key="start" value="2595"/> - <details key="end" value="2624"/> + <eAnnotations source="positions.213" references="/0/CppOperationImplementation/%.2/%.3"> + <details key="start" value="3018"/> + <details key="end" value="3047"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.172" references="/0/CppOperationImplementation/%.2/%.3/self"> + <eAnnotations source="positions.214" references="/0/CppOperationImplementation/%.2/%.3/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.173" references="/0/CppOperationImplementation/%.2/%.3/%"> - <details key="start" value="2618"/> - <details key="end" value="2623"/> + <eAnnotations source="positions.215" references="/0/CppOperationImplementation/%.2/%.3/%"> + <details key="start" value="3041"/> + <details key="end" value="3046"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.174" references="/0/CppOperationImplementation/%.2/%.4"> - <details key="start" value="2626"/> - <details key="end" value="2631"/> - <details key="line" value="76"/> + <eAnnotations source="positions.216" references="/0/CppOperationImplementation/%.2/%.4"> + <details key="start" value="3049"/> + <details key="end" value="3054"/> + <details key="line" value="85"/> </eAnnotations> - <eAnnotations source="positions.175" references="/0/CppOperationImplementation/%.2/%.5"> - <details key="start" value="2632"/> - <details key="end" value="2648"/> + <eAnnotations source="positions.217" references="/0/CppOperationImplementation/%.2/%.5"> + <details key="start" value="3055"/> + <details key="end" value="3071"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.176" references="/0/CppOperationImplementation/%.2/%.5/self"> + <eAnnotations source="positions.218" references="/0/CppOperationImplementation/%.2/%.5/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.177" references="/0/CppOperationImplementation/%.2/%.5/%"> - <details key="start" value="2640"/> - <details key="end" value="2647"/> + <eAnnotations source="positions.219" references="/0/CppOperationImplementation/%.2/%.5/%"> + <details key="start" value="3063"/> + <details key="end" value="3070"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.178" references="/0/CppOperationImplementation/%.2/%.6"> - <details key="start" value="2650"/> - <details key="end" value="2653"/> - <details key="line" value="78"/> + <eAnnotations source="positions.220" references="/0/CppOperationImplementation/%.2/%.6"> + <details key="start" value="3073"/> + <details key="end" value="3076"/> + <details key="line" value="87"/> </eAnnotations> - <eAnnotations source="positions.179" references="/0/CppOperationImplementation/%.2/%.7"> - <details key="start" value="2531"/> - <details key="end" value="2556"/> + <eAnnotations source="positions.221" references="/0/CppOperationImplementation/%.2/%.7"> + <details key="start" value="2954"/> + <details key="end" value="2979"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.180" references="/0/CppOperationImplementation/%.2/%.7/%"> - <details key="start" value="2532"/> - <details key="end" value="2546"/> + <eAnnotations source="positions.222" references="/0/CppOperationImplementation/%.2/%.7/%"> + <details key="start" value="2955"/> + <details key="end" value="2969"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.181" references="/0/CppOperationImplementation/%.2/%.7/%/operation"> - <details key="start" value="2532"/> - <details key="end" value="2541"/> + <eAnnotations source="positions.223" references="/0/CppOperationImplementation/%.2/%.7/%/operation"> + <details key="start" value="2955"/> + <details key="end" value="2964"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.182" references="/0/CppOperationImplementation/%.2/%.7/%.1"> - <details key="start" value="2549"/> - <details key="end" value="2555"/> + <eAnnotations source="positions.224" references="/0/CppOperationImplementation/%.2/%.7/%.1"> + <details key="start" value="2972"/> + <details key="end" value="2978"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.183" references="/0/CppOperationImplementation/%.2/%.8"> - <details key="start" value="2653"/> - <details key="end" value="2909"/> - <details key="line" value="79"/> + <eAnnotations source="positions.225" references="/0/CppOperationImplementation/%.2/%.8"> + <details key="start" value="3076"/> + <details key="end" value="3346"/> + <details key="line" value="88"/> </eAnnotations> - <eAnnotations source="positions.184" references="/0/CppOperationImplementation/%.2/%.8/%"> - <details key="start" value="2661"/> - <details key="end" value="2680"/> + <eAnnotations source="positions.226" references="/0/CppOperationImplementation/%.2/%.8/%"> + <details key="start" value="3084"/> + <details key="end" value="3103"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.185" references="/0/CppOperationImplementation/%.2/%.8/%/self"> + <eAnnotations source="positions.227" references="/0/CppOperationImplementation/%.2/%.8/%/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.186" references="/0/CppOperationImplementation/%.2/%.8/%.1"> - <details key="start" value="2683"/> - <details key="end" value="2694"/> + <eAnnotations source="positions.228" references="/0/CppOperationImplementation/%.2/%.8/%.1"> + <details key="start" value="3106"/> + <details key="end" value="3117"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.187" references="/0/CppOperationImplementation/%.2/%.8/%.1/self"> + <eAnnotations source="positions.229" references="/0/CppOperationImplementation/%.2/%.8/%.1/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.188" references="/0/CppOperationImplementation/%.2/%.8/%.2"> - <details key="start" value="2697"/> - <details key="end" value="2712"/> + <eAnnotations source="positions.230" references="/0/CppOperationImplementation/%.2/%.8/%.2"> + <details key="start" value="3120"/> + <details key="end" value="3135"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.189" references="/0/CppOperationImplementation/%.2/%.8/%.2/self"> + <eAnnotations source="positions.231" references="/0/CppOperationImplementation/%.2/%.8/%.2/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.190" references="/0/CppOperationImplementation/%.2/%.8/%.3"> - <details key="start" value="2715"/> - <details key="end" value="2735"/> + <eAnnotations source="positions.232" references="/0/CppOperationImplementation/%.2/%.8/collect"> + <details key="start" value="3138"/> + <details key="end" value="3172"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.191" references="/0/CppOperationImplementation/%.2/%.8/%.3/%"> - <details key="start" value="2715"/> - <details key="end" value="2730"/> + <eAnnotations source="positions.233" references="/0/CppOperationImplementation/%.2/%.8/collect/%"> + <details key="start" value="3138"/> + <details key="end" value="3167"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.192" references="/0/CppOperationImplementation/%.2/%.8/%.3/%/operation"> - <details key="start" value="2715"/> - <details key="end" value="2724"/> + <eAnnotations source="positions.234" references="/0/CppOperationImplementation/%.2/%.8/collect/%/operation"> + <details key="start" value="3138"/> + <details key="end" value="3147"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.193" references="/0/CppOperationImplementation/%.2/%.8/%.4"> - <details key="start" value="2738"/> - <details key="end" value="2762"/> + <eAnnotations source="positions.235" references="/0/CppOperationImplementation/%.2/%.8/collect/%.1"> + <details key="start" value="3168"/> + <details key="end" value="3172"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.194" references="/0/CppOperationImplementation/%.2/%.8/%.4/self"> + <eAnnotations source="positions.236" references="/0/CppOperationImplementation/%.2/%.8/collect/%.1/temp1"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.195" references="/0/CppOperationImplementation/%.2/%.8/%.5"> - <details key="start" value="2764"/> - <details key="end" value="2766"/> - <details key="line" value="80"/> + <eAnnotations source="positions.237" references="/0/CppOperationImplementation/%.2/%.8/collect/temp4"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.196" references="/0/CppOperationImplementation/%.2/%.8/%.6"> - <details key="start" value="2767"/> - <details key="end" value="2779"/> + <eAnnotations source="positions.238" references="/0/CppOperationImplementation/%.2/%.8/%.3"> + <details key="start" value="3175"/> + <details key="end" value="3199"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.197" references="/0/CppOperationImplementation/%.2/%.8/%.6/self"> + <eAnnotations source="positions.239" references="/0/CppOperationImplementation/%.2/%.8/%.3/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.198" references="/0/CppOperationImplementation/%.2/%.8/%.7"> - <details key="start" value="2782"/> - <details key="end" value="2796"/> + <eAnnotations source="positions.240" references="/0/CppOperationImplementation/%.2/%.8/%.4"> + <details key="start" value="3201"/> + <details key="end" value="3203"/> + <details key="line" value="89"/> + </eAnnotations> + <eAnnotations source="positions.241" references="/0/CppOperationImplementation/%.2/%.8/%.5"> + <details key="start" value="3204"/> + <details key="end" value="3216"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.199" references="/0/CppOperationImplementation/%.2/%.8/%.7/operation"> - <details key="start" value="2782"/> - <details key="end" value="2791"/> + <eAnnotations source="positions.242" references="/0/CppOperationImplementation/%.2/%.8/%.5/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.200" references="/0/CppOperationImplementation/%.2/%.8/%.8"> - <details key="start" value="2798"/> - <details key="end" value="2799"/> - <details key="line" value="80"/> + <eAnnotations source="positions.243" references="/0/CppOperationImplementation/%.2/%.8/%.6"> + <details key="start" value="3219"/> + <details key="end" value="3233"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.244" references="/0/CppOperationImplementation/%.2/%.8/%.6/operation"> + <details key="start" value="3219"/> + <details key="end" value="3228"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.245" references="/0/CppOperationImplementation/%.2/%.8/%.7"> + <details key="start" value="3235"/> + <details key="end" value="3236"/> + <details key="line" value="89"/> </eAnnotations> - <eAnnotations source="positions.201" references="/0/CppOperationImplementation/%.2/%.8/%.9"> - <details key="start" value="2800"/> - <details key="end" value="2829"/> + <eAnnotations source="positions.246" references="/0/CppOperationImplementation/%.2/%.8/%.8"> + <details key="start" value="3237"/> + <details key="end" value="3266"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.202" references="/0/CppOperationImplementation/%.2/%.8/%.9/self"> + <eAnnotations source="positions.247" references="/0/CppOperationImplementation/%.2/%.8/%.8/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.203" references="/0/CppOperationImplementation/%.2/%.8/%.9/%"> - <details key="start" value="2823"/> - <details key="end" value="2828"/> + <eAnnotations source="positions.248" references="/0/CppOperationImplementation/%.2/%.8/%.8/%"> + <details key="start" value="3260"/> + <details key="end" value="3265"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.204" references="/0/CppOperationImplementation/%.2/%.8/%.10"> - <details key="start" value="2831"/> - <details key="end" value="2832"/> - <details key="line" value="80"/> + <eAnnotations source="positions.249" references="/0/CppOperationImplementation/%.2/%.8/%.9"> + <details key="start" value="3268"/> + <details key="end" value="3269"/> + <details key="line" value="89"/> </eAnnotations> - <eAnnotations source="positions.205" references="/0/CppOperationImplementation/%.2/%.8/%.11"> - <details key="start" value="2833"/> - <details key="end" value="2841"/> + <eAnnotations source="positions.250" references="/0/CppOperationImplementation/%.2/%.8/%.10"> + <details key="start" value="3270"/> + <details key="end" value="3278"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.206" references="/0/CppOperationImplementation/%.2/%.8/%.11/self"> + <eAnnotations source="positions.251" references="/0/CppOperationImplementation/%.2/%.8/%.10/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.207" references="/0/CppOperationImplementation/%.2/%.8/%.12"> - <details key="start" value="2844"/> - <details key="end" value="2854"/> + <eAnnotations source="positions.252" references="/0/CppOperationImplementation/%.2/%.8/%.11"> + <details key="start" value="3281"/> + <details key="end" value="3291"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.208" references="/0/CppOperationImplementation/%.2/%.8/%.12/self"> + <eAnnotations source="positions.253" references="/0/CppOperationImplementation/%.2/%.8/%.11/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.209" references="/0/CppOperationImplementation/%.2/%.8/%.13"> - <details key="start" value="2857"/> - <details key="end" value="2871"/> + <eAnnotations source="positions.254" references="/0/CppOperationImplementation/%.2/%.8/%.12"> + <details key="start" value="3294"/> + <details key="end" value="3308"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.210" references="/0/CppOperationImplementation/%.2/%.8/%.13/self"> + <eAnnotations source="positions.255" references="/0/CppOperationImplementation/%.2/%.8/%.12/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.211" references="/0/CppOperationImplementation/%.2/%.8/%.14"> - <details key="start" value="2873"/> - <details key="end" value="2877"/> - <details key="line" value="80"/> + <eAnnotations source="positions.256" references="/0/CppOperationImplementation/%.2/%.8/%.13"> + <details key="start" value="3310"/> + <details key="end" value="3314"/> + <details key="line" value="89"/> </eAnnotations> - <eAnnotations source="positions.212" references="/0/CppOperationImplementation/%.2/%.8/%.15"> - <details key="start" value="2878"/> - <details key="end" value="2904"/> + <eAnnotations source="positions.257" references="/0/CppOperationImplementation/%.2/%.8/%.14"> + <details key="start" value="3315"/> + <details key="end" value="3341"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.213" references="/0/CppOperationImplementation/%.2/%.8/%.15/self"> + <eAnnotations source="positions.258" references="/0/CppOperationImplementation/%.2/%.8/%.14/self"> <details key="start" value="-1"/> <details key="end" value="-1"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.214" references="/0/CppOperationImplementation/%.2/%.8/%.15/%"> - <details key="start" value="2896"/> - <details key="end" value="2903"/> + <eAnnotations source="positions.259" references="/0/CppOperationImplementation/%.2/%.8/%.14/%"> + <details key="start" value="3333"/> + <details key="end" value="3340"/> <details key="line" value="0"/> </eAnnotations> - <eAnnotations source="positions.215" references="/0/CppOperationImplementation/%.2/%.8/%.16"> - <details key="start" value="2906"/> - <details key="end" value="2909"/> + <eAnnotations source="positions.260" references="/0/CppOperationImplementation/%.2/%.8/%.15"> + <details key="start" value="3343"/> + <details key="end" value="3346"/> + <details key="line" value="91"/> + </eAnnotations> + <eAnnotations source="positions.261" references="/0/CppOperationImplementation/operation"> + <details key="start" value="2905"/> + <details key="end" value="2926"/> <details key="line" value="82"/> </eAnnotations> - <eAnnotations source="positions.216" references="/0/CppOperationImplementation/operation"> - <details key="start" value="2482"/> - <details key="end" value="2503"/> - <details key="line" value="73"/> + <eAnnotations source="positions.262" references="/0/CppBehaviorImplementation"> + <details key="start" value="3366"/> + <details key="end" value="3607"/> + <details key="line" value="96"/> + </eAnnotations> + <eAnnotations source="positions.263" references="/0/CppBehaviorImplementation/%"> + <details key="start" value="3438"/> + <details key="end" value="3454"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.264" references="/0/CppBehaviorImplementation/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.265" references="/0/CppBehaviorImplementation/%.1"> + <details key="start" value="3456"/> + <details key="end" value="3457"/> + <details key="line" value="98"/> + </eAnnotations> + <eAnnotations source="positions.266" references="/0/CppBehaviorImplementation/%.2"> + <details key="start" value="3458"/> + <details key="end" value="3473"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.267" references="/0/CppBehaviorImplementation/%.2/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.268" references="/0/CppBehaviorImplementation/%.3"> + <details key="start" value="3476"/> + <details key="end" value="3498"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.269" references="/0/CppBehaviorImplementation/%.3/%"> + <details key="start" value="3476"/> + <details key="end" value="3493"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.270" references="/0/CppBehaviorImplementation/%.3/%/behavior"> + <details key="start" value="3476"/> + <details key="end" value="3484"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.271" references="/0/CppBehaviorImplementation/%.4"> + <details key="start" value="3500"/> + <details key="end" value="3502"/> + <details key="line" value="98"/> + </eAnnotations> + <eAnnotations source="positions.272" references="/0/CppBehaviorImplementation/%.5"> + <details key="start" value="3503"/> + <details key="end" value="3516"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.273" references="/0/CppBehaviorImplementation/%.5/behavior"> + <details key="start" value="3503"/> + <details key="end" value="3511"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.274" references="/0/CppBehaviorImplementation/%.6"> + <details key="start" value="3518"/> + <details key="end" value="3519"/> + <details key="line" value="98"/> + </eAnnotations> + <eAnnotations source="positions.275" references="/0/CppBehaviorImplementation/%.7"> + <details key="start" value="3520"/> + <details key="end" value="3548"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.276" references="/0/CppBehaviorImplementation/%.7/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.277" references="/0/CppBehaviorImplementation/%.7/%"> + <details key="start" value="3542"/> + <details key="end" value="3547"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.278" references="/0/CppBehaviorImplementation/%.8"> + <details key="start" value="3550"/> + <details key="end" value="3551"/> + <details key="line" value="98"/> + </eAnnotations> + <eAnnotations source="positions.279" references="/0/CppBehaviorImplementation/%.9"> + <details key="start" value="3552"/> + <details key="end" value="3562"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.280" references="/0/CppBehaviorImplementation/%.9/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.281" references="/0/CppBehaviorImplementation/%.10"> + <details key="start" value="3564"/> + <details key="end" value="3568"/> + <details key="line" value="98"/> + </eAnnotations> + <eAnnotations source="positions.282" references="/0/CppBehaviorImplementation/%.11"> + <details key="start" value="3569"/> + <details key="end" value="3591"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.283" references="/0/CppBehaviorImplementation/%.11/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.284" references="/0/CppBehaviorImplementation/%.11/%"> + <details key="start" value="3583"/> + <details key="end" value="3590"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.285" references="/0/CppBehaviorImplementation/%.12"> + <details key="start" value="3593"/> + <details key="end" value="3595"/> + <details key="line" value="100"/> + </eAnnotations> + <eAnnotations source="positions.286" references="/0/CppBehaviorImplementation/behavior"> + <details key="start" value="3409"/> + <details key="end" value="3434"/> + <details key="line" value="96"/> </eAnnotations> </ecore:EAnnotation> </xmi:XMI> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.mtl index 4dc7d84ca9f..18bcb778f50 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.mtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppOperations.mtl @@ -37,6 +37,11 @@ endif/] [/template] +[template public CppReturnSpec(behavior : Behavior)] +[if (returnResult() = null)]void [else][returnResult().modConst()/] [returnResult().type.cppQualifiedName()/] [/if][returnResult().modPtr()/][returnResult().modRef()/] +[/template] + + [template public InlineTxt(element : Element)] [if (hasStereotype(Inline))]inline [/if] [/template] @@ -48,9 +53,13 @@ endif/] [template public CppOperationDeclaration(operation : Operation)] [CppOperationDoc()/] -[InlineTxt()/][virtualTxt()/][staticTxt()/][CppReturnSpec()/] [destructor()/][operation.name/]([CppOperationParameters(true)/])[modConst()/][virtualSuffix()/]; +[InlineTxt()/][virtualTxt()/][staticTxt()/][CppReturnSpec()/][destructor()/][operation.name/]([CppOperationParameters(true)/])[modConst()/][virtualSuffix()/]; [/template] +[template public CppBehaviorDeclaration(behavior : Behavior)] +[CppBehaviorDoc()/] +[InlineTxt()/][CppReturnSpec()/][behavior.name/]([CppBehaviorParameters(true)/])[modConst()/]; +[/template] [template public CppConstInit(operation : Operation)] [if (hasStereotype(ConstInit) and hasStereotype(l2::Create))] : [getApplication(ConstInit).oclAsType(ConstInit).initialisation/][/if] @@ -77,8 +86,16 @@ throws [for (raisedException) separator(',')][name/][/for] [getBody('C/C++')/] } [else] -[templateSignature()/][InlineTxt()/][CppReturnSpec()/][operation.class.name/][templateShortSignature()/]::[destructor()/][operation.name/]([CppOperationParameters(false)/])[throws()/][modConst()/][CppConstInit()/] { +[templateSignature()/][InlineTxt()/][CppReturnSpec()/][operation.featuringClassifier.name/][templateShortSignature()/]::[destructor()/][operation.name/]([CppOperationParameters(false)/])[throws()/][modConst()/][CppConstInit()/] { [getBodyInTemplate('C/C++')/] } [/if] [/template] + + +[template public CppBehaviorImplementation(behavior : OpaqueBehavior)] +[CppBehaviorDoc()/] +[CppReturnSpec()/][behavior._context.name/]::[behavior.name/]([CppBehaviorParameters(false)/])[modConst()/] { + [getBodyFromOB('C/C++')/] +} +[/template]
\ No newline at end of file diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.emtl index 8aed29e6420..edfd311aa77 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.emtl @@ -160,6 +160,57 @@ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> </parameter> </ownedModuleElement> + <ownedModuleElement xsi:type="mtl:Comment"> + <body startPosition="1033" endPosition="1099" value=" signature for a given behavior (e.g. effect within state machine)"/> + </ownedModuleElement> + <ownedModuleElement xsi:type="mtl:Template" name="CppBehaviorParameters" visibility="Public"> + <body xsi:type="mtl:ForBlock"> + <body xsi:type="mtl:TemplateInvocation" definition="/0/CppParameter"> + <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="/38"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </argument> + <argument xsi:type="ocl.ecore:VariableExp" name="showDefault" referredVariable="/0/CppBehaviorParameters/showDefault"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> + </argument> + </body> + <iterSet xsi:type="ocl.ecore:IteratorExp" name="select" eType="/24/OrderedSet(Parameter)"> + <source xsi:type="ocl.ecore:PropertyCallExp" eType="/24/OrderedSet(Parameter)"> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/35"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </source> + <referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior/ownedParameter"/> + </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:PropertyCallExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//ParameterDirectionKind"/> + <source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/CppBehaviorParameters/%/select/temp2"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </source> + <referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter/direction"/> + </source> + <argument xsi:type="ocl.ecore:EnumLiteralExp"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//ParameterDirectionKind"/> + <referredEnumLiteral xsi:type="ecore:EEnumLiteral" href="http://www.eclipse.org/uml2/4.0.0/UML#//ParameterDirectionKind/return"/> + </argument> + <referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/%3C%3E"/> + </body> + <iterator xsi:type="ocl.ecore:Variable" name="temp2"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </iterator> + </iterSet> + <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> + </body> + <parameter name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </parameter> + <parameter name="showDefault"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> + </parameter> + </ownedModuleElement> </mtl:Module> <ecore:EPackage name="additions"> <eClassifiers xsi:type="ecore:EClass" name="String_Class"> @@ -217,6 +268,19 @@ <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> </eParameters> </eOperations> + <eOperations name="CppBehaviorParameters"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL" references="/0/CppBehaviorParameters"/> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + <eParameters name="behavior"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </eParameters> + <eParameters name="showDefault"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/> + </eParameters> + </eOperations> <eOperations name="cppQualifiedName"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <contents xsi:type="ocl.ecore:Constraint"/> @@ -308,6 +372,11 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Operation"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="Behavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </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/4.0.0/UML#//Class"/> @@ -338,11 +407,21 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//OpaqueBehavior"/> + </eAnnotations> + </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType_Class"> <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> <references href="http://www.eclipse.org/uml2/4.0.0/UML#//PrimitiveType"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> @@ -436,6 +515,36 @@ <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/4.0.0/UML#//Behavior"/> + </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/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Parameter"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Behavior"/> + </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/defaultValue"> <details key="start" value="290"/> @@ -682,5 +791,90 @@ <details key="end" value="882"/> <details key="line" value="20"/> </eAnnotations> + <eAnnotations source="positions.49" references="/0/%.1"> + <details key="start" value="1025"/> + <details key="end" value="1101"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.50" references="/0/CppBehaviorParameters"> + <details key="start" value="1102"/> + <details key="end" value="1323"/> + <details key="line" value="26"/> + </eAnnotations> + <eAnnotations source="positions.51" references="/0/CppBehaviorParameters/%"> + <details key="start" value="1186"/> + <details key="end" value="1311"/> + <details key="line" value="27"/> + </eAnnotations> + <eAnnotations source="positions.52" references="/0/CppBehaviorParameters/%/%"> + <details key="start" value="1278"/> + <details key="end" value="1303"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.53" references="/0/CppBehaviorParameters/%/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.54" references="/0/CppBehaviorParameters/%/%/showDefault"> + <details key="start" value="1291"/> + <details key="end" value="1302"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.55" references="/0/CppBehaviorParameters/%/select"> + <details key="start" value="1192"/> + <details key="end" value="1259"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.56" references="/0/CppBehaviorParameters/%/select/%"> + <details key="start" value="1192"/> + <details key="end" value="1206"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.57" references="/0/CppBehaviorParameters/%/select/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.58" references="/0/CppBehaviorParameters/%/select/%.1"> + <details key="start" value="1215"/> + <details key="end" value="1258"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.59" references="/0/CppBehaviorParameters/%/select/%.1/%"> + <details key="start" value="1215"/> + <details key="end" value="1224"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.60" references="/0/CppBehaviorParameters/%/select/%.1/%/temp1"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.61" references="/0/CppBehaviorParameters/%/select/%.1/%.1"> + <details key="start" value="1228"/> + <details key="end" value="1258"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.62" references="/0/CppBehaviorParameters/%/select/temp2"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.63" references="/0/CppBehaviorParameters/%/%.1"> + <details key="start" value="1271"/> + <details key="end" value="1275"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.64" references="/0/CppBehaviorParameters/behavior"> + <details key="start" value="1141"/> + <details key="end" value="1160"/> + <details key="line" value="26"/> + </eAnnotations> + <eAnnotations source="positions.65" references="/0/CppBehaviorParameters/showDefault"> + <details key="start" value="1162"/> + <details key="end" value="1183"/> + <details key="line" value="26"/> + </eAnnotations> </ecore:EAnnotation> </xmi:XMI> diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.mtl index 65ecd6707e4..bffec7ecfa8 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.mtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/acceleo/util/operation/CppParameter.mtl @@ -19,4 +19,10 @@ [template public CppOperationParameters(operation : Operation, showDefault : Boolean)] [for (ownedParameter->select(direction <> ParameterDirectionKind::return)) separator(', ')][CppParameter(showDefault)/][/for] +[/template] + + +[comment signature for a given behavior (e.g. effect within state machine)/] +[template public CppBehaviorParameters(behavior : Behavior, showDefault : Boolean)] +[for (ownedParameter->select(direction <> ParameterDirectionKind::return)) separator(', ')][CppParameter(showDefault)/][/for] [/template]
\ No newline at end of file diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java index 9d3549b2047..b7ff6d23bca 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java @@ -11,10 +11,18 @@ package org.eclipse.papyrus.cpp.codegen.transformation;
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.ToolFactory;
+import org.eclipse.cdt.core.formatter.CodeFormatter;
import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.IDocument;
import org.eclipse.papyrus.C_Cpp.CppRoot;
import org.eclipse.papyrus.C_Cpp.ExternLibrary;
import org.eclipse.papyrus.C_Cpp.External;
@@ -25,7 +33,10 @@ import org.eclipse.papyrus.C_Cpp.Template; import org.eclipse.papyrus.acceleo.AcceleoDriver;
import org.eclipse.papyrus.acceleo.GenUtils;
import org.eclipse.papyrus.acceleo.ModelElementsCreator;
+import org.eclipse.papyrus.cpp.codegen.Activator;
import org.eclipse.papyrus.cpp.codegen.preferences.CppCodeGenUtils;
+import org.eclipse.text.edits.MalformedTreeException;
+import org.eclipse.text.edits.TextEdit;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.Element;
@@ -144,7 +155,45 @@ public class CppModelElementsCreator extends ModelElementsCreator { }
}
+ @Override
+ protected void createFile(IFile file, String content, boolean force) throws CoreException {
+ String formatted = format(content);
+ super.createFile(file, formatted, force);
+ }
+
+ /**
+ * Apply the user's currently selected formatting options to the input content. Return the
+ * input String in case of error.
+ */
+ private static String format(String content) {
+
+ // do nothing if the CDT plugin is not loaded
+ if (Platform.getBundle(CCorePlugin.PLUGIN_ID) == null)
+ return content;
+
+ CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(null);
+ IDocument doc = new Document(content);
+
+ TextEdit edit = codeFormatter.format(CodeFormatter.K_TRANSLATION_UNIT, doc.get(), 0, doc.get().length(), 0, null);
+
+ if (edit == null) {
+ Activator.log.debug("Cannot format content");
+ return content;
+ }
+
+ try {
+ edit.apply(doc);
+ return doc.get();
+ } catch (MalformedTreeException e) {
+ Activator.log.error(e);
+ } catch (BadLocationException e) {
+ Activator.log.error(e);
+ }
+
+ return content;
+ }
+ @Override
protected void createPackageFiles(IContainer packageContainer, IProgressMonitor monitor, Package pkg) throws CoreException {
// Creates the header for the package.
String fileContent = commentHeader + AcceleoDriver.evaluateURI(CppPackageHeader, pkg);
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.emtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.emtl index d7f116d65be..23c2bb612d9 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.emtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.emtl @@ -212,6 +212,67 @@ </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:Query" name="resetVisibility" visibility="Public"> + <parameter name="arg0"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </parameter> + <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/OclAny_Class/invoke"> + <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/29"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </source> + <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </argument> + <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="resetVisibility(org.eclipse.uml2.uml.VisibilityKind)"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </argument> + <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/4/Sequence(VisibilityKind)" kind="Sequence"> + <part xsi:type="ocl.ecore:CollectionItem"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <item xsi:type="ocl.ecore:VariableExp" name="arg0" referredVariable="/0/resetVisibility/arg0"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </item> + </part> + </argument> + </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:Query" name="getSection" visibility="Public"> + <parameter name="arg0"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </parameter> + <parameter name="arg1"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </parameter> + <expression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/OclAny_Class/invoke"> + <eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/> + <source xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/32"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </source> + <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </argument> + <argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="getSection(org.eclipse.uml2.uml.VisibilityKind, java.lang.String)"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </argument> + <argument xsi:type="ocl.ecore:CollectionLiteralExp" eType="/4/Sequence(OclAny)" kind="Sequence"> + <part xsi:type="ocl.ecore:CollectionItem"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + <item xsi:type="ocl.ecore:VariableExp" name="arg0" referredVariable="/0/getSection/arg0"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </item> + </part> + <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="ocl.ecore:VariableExp" name="arg1" referredVariable="/0/getSection/arg1"> + <eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </item> + </part> + </argument> + </expression> + <type xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/> + </ownedModuleElement> </mtl:Module> <ecore:EPackage name="additions"> <eClassifiers xsi:type="ecore:EClass" name="String_Class"> @@ -313,6 +374,29 @@ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/> </eParameters> </eOperations> + <eOperations name="resetVisibility"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL" references="/0/resetVisibility"/> + <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:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eParameters> + </eOperations> + <eOperations name="getSection"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <contents xsi:type="ocl.ecore:Constraint"/> + </eAnnotations> + <eAnnotations source="MTL" references="/0/getSection"/> + <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:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eParameters> + <eParameters name="arg1"> + <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"> @@ -372,6 +456,11 @@ <references href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/> </eAnnotations> </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="VisibilityKind_Class"> + <eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL"> + <references href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eAnnotations> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/> @@ -398,6 +487,9 @@ <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(Element)" instanceClassName="java.util.List"> <elementType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Element"/> </eClassifiers> + <eClassifiers xsi:type="ocl.ecore:SequenceType" name="Sequence(VisibilityKind)" instanceClassName="java.util.List"> + <elementType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </eClassifiers> </ecore:EPackage> <ocl.ecore:Variable name="self"> <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/> @@ -468,6 +560,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="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </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:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </ocl.ecore:Variable> + <ocl.ecore:Variable name="self"> + <eType xsi:type="ecore:EEnum" href="http://www.eclipse.org/uml2/4.0.0/UML#//VisibilityKind"/> + </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/getTemplateParametersWoType"> <details key="start" value="93"/> @@ -789,5 +899,95 @@ <details key="end" value="1670"/> <details key="line" value="0"/> </eAnnotations> + <eAnnotations source="positions.64" references="/0/resetVisibility"> + <details key="start" value="1677"/> + <details key="end" value="1879"/> + <details key="line" value="36"/> + </eAnnotations> + <eAnnotations source="positions.65" references="/0/resetVisibility/arg0"> + <details key="start" value="1707"/> + <details key="end" value="1728"/> + <details key="line" value="36"/> + </eAnnotations> + <eAnnotations source="positions.66" references="/0/resetVisibility/%"> + <details key="start" value="1745"/> + <details key="end" value="1876"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.67" references="/0/resetVisibility/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.68" references="/0/resetVisibility/%/%"> + <details key="start" value="1752"/> + <details key="end" value="1803"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.69" references="/0/resetVisibility/%/%.1"> + <details key="start" value="1805"/> + <details key="end" value="1859"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.70" references="/0/resetVisibility/%/%.2"> + <details key="start" value="1861"/> + <details key="end" value="1875"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.71" references="/0/resetVisibility/%/%.2/%/arg0"> + <details key="start" value="1870"/> + <details key="end" value="1874"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.72" references="/0/getSection"> + <details key="start" value="1881"/> + <details key="end" value="2112"/> + <details key="line" value="40"/> + </eAnnotations> + <eAnnotations source="positions.73" references="/0/getSection/arg0"> + <details key="start" value="1906"/> + <details key="end" value="1927"/> + <details key="line" value="40"/> + </eAnnotations> + <eAnnotations source="positions.74" references="/0/getSection/arg1"> + <details key="start" value="1929"/> + <details key="end" value="1942"/> + <details key="line" value="40"/> + </eAnnotations> + <eAnnotations source="positions.75" references="/0/getSection/%"> + <details key="start" value="1959"/> + <details key="end" value="2109"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.76" references="/0/getSection/%/self"> + <details key="start" value="-1"/> + <details key="end" value="-1"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.77" references="/0/getSection/%/%"> + <details key="start" value="1966"/> + <details key="end" value="2017"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.78" references="/0/getSection/%/%.1"> + <details key="start" value="2019"/> + <details key="end" value="2086"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.79" references="/0/getSection/%/%.2"> + <details key="start" value="2088"/> + <details key="end" value="2108"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.80" references="/0/getSection/%/%.2/%/arg0"> + <details key="start" value="2097"/> + <details key="end" value="2101"/> + <details key="line" value="0"/> + </eAnnotations> + <eAnnotations source="positions.81" references="/0/getSection/%/%.2/%.1/arg1"> + <details key="start" value="2103"/> + <details key="end" value="2107"/> + <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/utils/CppGenUtils.java b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java index 25d9a99082d..1e8e83c440e 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java @@ -12,6 +12,8 @@ package org.eclipse.papyrus.cpp.codegen.utils; import java.util.Iterator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.eclipse.papyrus.C_Cpp.ExternLibrary; import org.eclipse.papyrus.C_Cpp.External; @@ -34,6 +36,7 @@ import org.eclipse.uml2.uml.Package; import org.eclipse.uml2.uml.ParameterableElement; import org.eclipse.uml2.uml.PrimitiveType; import org.eclipse.uml2.uml.TemplateParameter; +import org.eclipse.uml2.uml.VisibilityKind; import org.eclipse.uml2.uml.util.UMLUtil; @@ -292,4 +295,42 @@ public class CppGenUtils { } private static Namespace currentNS; + + private static boolean visibilityStale = false; + private static VisibilityKind currVisibility = null; + private static final Pattern EmptySectionRegex = Pattern.compile("^\\s*$"); + + /** + * Update the current visibility to the specified value without writing this value to + * the output. This is to be used when setting the default visibility of a class/struct. + */ + public static void resetVisibility(VisibilityKind v) { + currVisibility = v; + visibilityStale = false; + } + + /** + * Create a section of code with the appropriate visibility. Merges the content with + * the previously declared visibility (if appropriate). Ignore empty content. + */ + public static String getSection(VisibilityKind visibility, String content) { + if (!visibility.equals(currVisibility)) { + currVisibility = visibility; + visibilityStale = true; + } + + // Filter out empty sections. + Matcher m = EmptySectionRegex.matcher(content); + if (content.isEmpty() || m.matches()) { + return ""; + } + + // Don't write duplicate visibility modifiers. + if (!visibilityStale) { + return content; + } + + visibilityStale = false; + return currVisibility.toString() + ":\n" + content; + } } diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.mtl b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.mtl index 98dedb83e9f..6fb8bc2160d 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.mtl +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.mtl @@ -33,3 +33,10 @@ = invoke('org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils', 'getGeneralizationVisibility(org.eclipse.uml2.uml.Element)', Sequence{arg0}) /] +[query public resetVisibility(arg0 : VisibilityKind) : String + = invoke('org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils', 'resetVisibility(org.eclipse.uml2.uml.VisibilityKind)', Sequence{arg0}) +/] + +[query public getSection(arg0 : VisibilityKind, arg1 : String) : String + = invoke('org.eclipse.papyrus.cpp.codegen.utils.CppGenUtils', 'getSection(org.eclipse.uml2.uml.VisibilityKind, java.lang.String)', Sequence{arg0, arg1}) +/] |